真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql怎么約束檢查 mysql中的檢查約束

怎樣在MySQL中使用檢查約束?

這是一項新功能,用于指定在插入或更新到一行之前檢查值的條件。如果表的任何行的搜索條件的結(jié)果為 FALSE,則約束可能返回錯誤(但如果結(jié)果為 UNKNOWN 或 TRUE,則約束不會返回錯誤)。此功能開始在 MySQL 8.0.16 上運行,在以前的版本中,我們可以創(chuàng)建它,但它不起作用,這意味著支持語法,但不起作用。要牢記的使用規(guī)則:

創(chuàng)新互聯(lián)從2013年成立,先為陳倉等服務(wù)建站,陳倉等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為陳倉企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

AUTO_INCREMENT 自增列不允許使用

引用另一個表中的另一列不允許使用

存儲的函數(shù)和用戶定義的函數(shù)不允許使用

存儲過程和函數(shù)參數(shù)不允許使用

子查詢不允許使用

在外鍵中用于后續(xù)操作(ON UPDATE,ON DELETE)的列不允許使用

為下一條語句 INSERT,UPDATE,REPLACE,LOAD DATA 和 LOAD XML 評估此次監(jiān)測。此外,還會為 INSERT IGNORE,UPDATE IGNORE,LOAD DATA…IGNORE 和 LOAD XML…IGNORE 評估此監(jiān)測約束。對于這些語句,如果約束的評估結(jié)果為 FALSE,則會發(fā)生警告。插入或更新被跳過。

我們可以使用此功能在表中添加更多的邏輯,但是根據(jù)我以前作為程序員的經(jīng)驗,我不建議在表中添加邏輯,因為除非您無法訪問應(yīng)用程序代碼,否則很難找到或調(diào)試錯誤。

mysql如何查看表中的所有約束和觸發(fā)器?

可以從information_schema架構(gòu)下的系統(tǒng)表查看\x0d\x0a \x0d\x0a-- 查看約束\x0d\x0aSELECT * FROM information_schema.`TABLE_CONSTRAINTS`;\x0d\x0a \x0d\x0a-- 查看觸發(fā)器\x0d\x0aSELECT * FROM information_schema.`TRIGGERS`;

關(guān)于MySQL的檢查約束不生效的問題

在使用MySQL的檢查(check)約束時,向表中插入不符合約束條件的數(shù)據(jù)行時,也能插入成功不會報錯!

建表語句如下:

向其中插入行

居然返回

看來check約束是白寫了,沒有起作用.

經(jīng)過上網(wǎng)查看發(fā)現(xiàn),MySQL只是可以使用check約束, 但不會強制的遵循check約束!

官方推薦使用 枚舉類型(ENUM) 來替代以上的使用check約束的情況.將表中的gender字段修改成如下類型:

(注意修改前的表中數(shù)據(jù)不能有g(shù)ender字段含有不是'M'或'F'的數(shù)據(jù)行,否則不能執(zhí)行以下語句,會報錯)

執(zhí)行alter語句后的person表的gender就會在插入和修改時嚴(yán)格驗證屬于的數(shù)據(jù)是否合法啦!

測試一下:

如下插入語句會報錯

當(dāng)輸入正確的語句時不會報錯,通過驗證


網(wǎng)站名稱:mysql怎么約束檢查 mysql中的檢查約束
URL鏈接:http://weahome.cn/article/dojdhod.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部