數據完整性約束(2)—— 用戶定義完整性


一.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;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM