現在要說的是在列這一層次過濾的基于表定義之前就規(guī)范好的 CHECK 約束。(MySQL 版本 = 8.0.16)
創(chuàng)新互聯公司的客戶來自各行各業(yè),為了共同目標,我們在工作上密切配合,從創(chuàng)業(yè)型小企業(yè)到企事業(yè)單位,感謝他們對我們的要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。專業(yè)領域包括成都網站制作、成都網站建設、電商網站開發(fā)、微信營銷、系統(tǒng)平臺開發(fā)。
mysql create table f1 (r1 int constraint tb_f1_r1_chk1 check (mod(r1,3)=0));
Query OK, 0 rows affected (0.03 sec)
mysql create table f2 (r1 int constraint tb_f2_r1_chk1 check (mod(r1,3)=0) not enforced);
Query OK, 0 rows affected (0.02 sec)
這里 CHECK 約束的相關限制如下:
1. constraint 名字在每個數據庫中唯一。
也就是說單個數據庫里不存在相同的兩個 constraint,如果不定義,系統(tǒng)自動生成一個唯一的約束名字。
2. check 約束針對語句 insert/update/replace/load data/load xml 生效;針對對應的 ignore 語句失效。
3. 并非每個函數都可以使用,比如函數結果不確定的:NOW(),CONNECTION_ID(),CURRENT_USER()。
4. 不適用于存儲過程和存儲函數。
5. 系統(tǒng)變量不適用。
6. 子查詢不適用。
7. 外鍵動作(比如 ON UPDATE, ON DELETE) 不適用。
8. enforced 默認啟用,如果單獨加上 not enforced ,check 約束失效。
分兩步走:
確認受外鍵約束的數據是否可用同步刪除。如果可用則直接刪除,如果不可以則接觸外鍵約束。
外鍵解除或受外鍵約束數據被刪除后,可用直接刪除自身數據。
alter table test drop foreign key 外鍵名稱;
指定表的列中刪除。mysql中,可以利用“ALTER TABLE”語句從指定表的列中刪除“not null”非空限制,利用modify可以修改表中字段的數據類型和約束條件。MySQL是一個關系型數據庫管理系統(tǒng),由瑞典MySQL AB公司開發(fā),屬于 Oracle旗下產品。