2015-02-05 48 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

相关问题