我想限制列id的输入值,其中2到5之间的值只允许在id列中插入,为此我使用check约束但是它是'完全没有工作。在下面我插入三行,其中第二行和第三行不满足检查条件,但仍然插入它们。
如何限制这些值?我使用mysql 5.6
和InnoDB
数据库引擎。
start transaction;
drop table if exists company ;
create table company(
id int check(id between 2 and 5),
name varchar(20));
insert into company(id,name) values(2,'Ron'),(6,'Queen'),(1,'Loren');
commit;
rollback;
答案 0 :(得分:0)
SHOCK HORROR! Mysql 忽略检查约束!
Mysql“supports”仅在允许创建表语句时检查约束,但仅限于兼容性与从其他数据库导出的模式 - 一旦定义,它们将被完全忽略。< / p>
使用触发器来强制执行此类约束。