MySQL之檢查約束


定義:

MySQL檢查約束(CHECK)可以通過 CREATE TABLE 或 ALTER TABLE 語句實現,根據用戶實際的完整性要求來定義。它可以分別對實施 CHECK 約束。

檢查約束使用 CHECK 關鍵字,具體的語法格式如下:

CHECK <表達式>   //表達式即為SQL 表達式,用於指定需要檢查的限定條件。

在更新表數據的時候,系統會檢查更新后的數據行是否滿足 CHECK 約束中的限定條件。MySQL 可以使用簡單的表達式來實現 CHECK 約束,也允許使用復雜的表達式作為限定條件,例如在限定條件中加入子查詢。

• 若將 CHECK 約束子句置於表中某個列的定義之后,則這種約束也稱為基於列的 CHECK 約束。

• 若將 CHECK 約束子句置於所有列的定義以及主鍵約束和外鍵定義之后,則這種約束也稱為基於表的 CHECK 約束。該約束可以同時對表中多個列設置限定條件。

設置檢查約束

1、在創建表時設置檢查約束

語法規則如下:

CHECK(<檢查約束>)

【實例 1】在 test_db 數據庫中創建 tb_emp7 數據表,要求 salary 字段值大於 0 且小於 10000

 

 

 

 上圖中tb_emp7_ibfk_1是系統自動生成的外鍵約束名;

2、修改表時添加檢查約束

語法規則如下:

ALTER TABLE <數據表名> ADD CONSTRAINT <檢查約束名> CHECK(<檢查約束>)

【實例 2】修改 tb_dept 數據表,要求 id 字段值大於 0

 

 刪除檢查約束(待補充完善)

ALTER TABLE <數據表名> DROP CONSTRAINT <檢查約束名>;

在通過show create table <數據表名>查看 的時候發現並無創建的check約束名,刪除的時候也報錯,所以不知道是不是check不生效導致的;在查詢資料的時候發現說MySQL中check約束並不生效;

https://blog.csdn.net/ldx19980108/article/details/79921853     //MySQL check不生效文檔查詢參考;


免責聲明!

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



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