mysql中6種常見的約束:主鍵約束(primary key)、外來鍵約束(foreign key)、非空約束(not null)、唯一性約束(unique)、預設值約束(defualt)、自增約束(aoto_increment),下面是新增、刪除這幾種約束的一些方法。
--我已經建了資料庫;1
--新增約束
2--1、建表時新增約束:
3create
table
goodstest (
4 gid int(10) not
null
auto_increment,
5 gname varchar(20) not
null
,6 gprice float
notnull
,7 gnum int(10) not
null,8
primary
key(gid),
9unique
key(gname),
10foreign
key (col_name) references tab_name(col_name)11
);12
1314
--2、通過alter語句新增約束
15--
主鍵約束
16--
語法:alter table tab_name add [constraint [symbol]] primary key [index_type] (key_part,...) [index_option]
17alter
table goodstest add
primary
key(gid);
18--
語法:alter table tab_name modify [column] col_name column_definition [first | after col_name]/* 可以更改列定義但不能更改其名稱,在不重新命名列定義的情況下更改列定義比change更方便。*/
19--
通過修改列定義新增或者新增主鍵,修改約束一般是先刪掉原有的後重新新增
20alter
table goodstest modify gid int(10) primary
key;
21--
語法:alter table tab_name change [column] old_col_name new_col_name column_definition [firet | after col_name] /*原始定義中存在但未為新定義指定的屬性不會繼續使用。即以新定義為準*/
22alter
table goodstest change gid gid int(10) primary
key;/*
當不需要重新命名時兩個相同的列名是必要的
*/23
2425
--唯一性約束
26--
語法:alter table tab_name add [constraint [symbol]] unique [index|key] [index_name] [index_type] (key_part,...) [index_option] ...
27alter
table goodstest add
constraint gname_uni unique
key(gname);/*
如果沒有用constraint設定約束名 系統會自動生成
*/28
--同理可用modify column及change column方法新增
29--
外來鍵約束
30--
語法:alter table tab_name add [constraint [symbol]] foreign key [index_name] (col_name,...) reference_definition
31alter
table gsales add
foreign
key(gid) references
goods(gid);
3233
--預設約束
34--
語法:alter table goodstest alter [column] col_name /*刪除以及設定*/
3536
37--
非空約束以及自增約束:在定義時設定,或者通過modify column 和 changge column設定及刪除
38--
一張表只能有乙個自增長列,並且該列必須定義了約束(可以是主鍵約束,也可以是唯一約束,也可以是外來鍵約束,但是不可以是非空和檢查約束)
3940
41--
刪除約束
4243
--語法:alter table tab_name drop primary key;/*主鍵是唯一的就這樣就行了*/
44--
語法:alter table tab_name drop [index | key] index_name /*刪除唯一性約束*/
45--
語法:alter table tab_name drop foreign key fk_name/*刪除外來鍵約束*/
參考:參考:
MySQL 新增約束,修改約束,刪除約束
alter table 新增,修改,刪除表的列,約束等表的定義。檢視列 desc 表名 修改表名 alter table t book rename to bbb 新增列 alter table 表名 add column 列名 varchar 30 刪除列 alter table 表名 drop ...
MYSQL新增約束,刪除約束新增列,修改列,刪除列
mysql新增約束,刪除約束 新增列,修改列,刪除列 新增主鍵約束 alter table 表名 add constraint 主鍵 形如 pk 表名 primary key 表名 主鍵字段 新增外來鍵約束 alter table 從表 add constraint 外來鍵 形如 fk 從表 主表 ...
MYSQL約束的新增和刪除
在mysql資料庫中,建表時就可以進行對錶的各項進行一些操作,例如設定主鍵或者非空約束,這裡主要講講如何在建表後進行新增約束和刪除約束 首先,建乙個十分普通的表 create table test test no char 10 test point int,test student char 11...