一.MySQL支持哪幾種用戶定義完整性?
.MySQL支持三種用戶自定義完整性:非空約束,check約束,觸發器約束。
二.非空約束
采用關鍵字:not null來定義非空約束
例子:
create table tb( tb_id int not null );
三.check約束
3.1對於列的check約束
語法:在列的定義后面使用check(sql語句)
例子:
create table tb( tb_id int not null check(tb_id<100000) );
接下來我們來進行一次操作,插入一個大於100000的值100001並查詢:
insert into tb values(100001); select tb_id from tb;

奇怪的是100001竟然插入到了數據庫中,原來MySQL只是對check約束做了分析,並沒有實質性的操作約束。
3.2對表實行check約束
在表的末尾進行定義,語法:
create table tb( tb_id int, tb_text varchar(20), check(tb_id in(10,20,30,50)) );
同樣對表的check約束也是一個空殼罷了。
四.刪除約束
使用關鍵字:alter table 表名 drop 約束類型【外鍵 | 索引】約束名 |【主鍵】
刪除主鍵例子:
alter table tb drop primary key;
