2017-09-09 117 views

回答

3

在大多數數據庫中,您會使用check約束。 MySQL允許你聲明檢查約束,但目前不強制執行:

alter table t add constraint chk_t_col check (col between 0 and 4194303); 

(更具體地講,沒有一個支持的存儲引擎的執行檢查約束)

相反,你需要插入之前使用並在更新之前觸發以驗證該值。也許未來的版本實際上會強制執行檢查約束,並允許它們被聲明。

如果你不熟悉觸發器,你不應該從Stack Overflow複製代碼。相反,首先了解它們。一個好的開始是documentation

+0

謝謝戈登,「支票」正是我所希望的。我添加了我編輯過的文章中描述的觸發器,但是,它並沒有阻止插入「id」爲123的記錄。你介意指出我做錯了什麼嗎?謝謝 – user1032531

+0

沒關係我的要求看觸發器。完美的作品。仍然會很高興支持'check',但一切都很好。再次感謝。 – user1032531