MySQL/MariaDB 是否有强制执行 CHECK 的引擎?
Is there an engine for MySQL/MariaDB that enforces CHECK?
我知道 InnoDB 强制执行外键。 MySQL/MariaDB 是否有真正实现 CHECK 的引擎?
假设我使用以下命令创建一个 table:
create table a(t timestamp not null, check (t > '2014-05-01')) ENGINE=InnoDB;
然后我尝试插入一个假定无效的行:
insert into a(t) values('2014-01-01');
MySQL,使用 InnoDB,允许插入该无效行。我想使用不接受该插入的引擎。有适合这项工作的引擎吗?
MySQL 中没有这样的引擎。如果您必须在数据库级别进行检查,您唯一的选择是使用触发器并在那里验证数据。
CHECK 约束在目前处于测试阶段的 MariaDB 10.2 中按预期工作。
https://jira.mariadb.org/browse/MDEV-7563
我知道 InnoDB 强制执行外键。 MySQL/MariaDB 是否有真正实现 CHECK 的引擎?
假设我使用以下命令创建一个 table:
create table a(t timestamp not null, check (t > '2014-05-01')) ENGINE=InnoDB;
然后我尝试插入一个假定无效的行:
insert into a(t) values('2014-01-01');
MySQL,使用 InnoDB,允许插入该无效行。我想使用不接受该插入的引擎。有适合这项工作的引擎吗?
MySQL 中没有这样的引擎。如果您必须在数据库级别进行检查,您唯一的选择是使用触发器并在那里验证数据。
CHECK 约束在目前处于测试阶段的 MariaDB 10.2 中按预期工作。 https://jira.mariadb.org/browse/MDEV-7563