在 MySQL 中新增自訂 CHECK 限制
嘗試為 MySQL 表新增自訂 CHECK 限制時可能會遇到問題。這些約束根據指定條件限制可以輸入到列中的值,MySQL 本身不支援這些約束。
考慮提供的程式碼,程式碼嘗試對狀態列強制執行CHECK 約束以只允許值'a'、'd' 和'u':
CREATE TABLE `Participants` ( ... CONSTRAINT `participants_ibfk_2` CHECK (status IN ('a','d','u')) ... );
但是,在MySQL中執行此程式碼時,您會注意到CHECK 約束被忽略。這是因為,如 MySQL 手冊中所述,MySQL 儲存引擎不支援表定義中定義的 CHECK 子句。
因此,有必要了解,雖然 MySQL 允許定義 CHECK 約束,但這些約束不要對輸入表中的資料施加任何限制。
解決方法
強制資料完整性並按預期約束列值,您可以考慮以下解決方法:
以上是為什麼 MySQL 不支援 CHECK 約束,有哪些替代方案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!