2015-02-05 25 views
0

我知道InnoDB強制外鍵。是否有一個真正實現CHECK的MySQL/MariaDB引擎?是否有MySQL/MariaDB的強制執行CHECK的引擎?

假設我創建具有以下命令的表:

create table a(t timestamp not null, check (t > '2014-05-01')) ENGINE=InnoDB;

,我嘗試插入被假定爲無效行:

insert into a(t) values('2014-01-01');

MySQL的,使用的是InnoDB ,允許插入該無效行。我想使用不接受該插入的引擎。那個工作有引擎嗎?

+1

我不相信有,但一個潛在的解決方案已經公佈[這裏] [1] [1]:http://dba.stackexchange.com/a/9668 – Chad 2015-02-05 13:57:25

+1

你可以隨時升級到Postgres(SCNR) – 2015-02-05 14:03:01

回答

1

MySQL中沒有這樣的引擎。如果您必須檢查數據庫級別,則唯一的選擇是使用觸發器並在那裏驗證數據。

也許有一天,雖然: http://bugs.mysql.com/bug.php?id=3464