使用mysql中的check约束来限制输入值

时间:2013-11-22 08:18:25

标签: mysql

我想限制列id的输入值,其中2到5之间的值只允许在id列中插入,为此我使用check约束但是它是'完全没有工作。在下面我插入三行,其中第二行和第三行不满足检查条件,但仍然插入它们。

如何限制这些值?我使用mysql 5.6InnoDB数据库引擎。

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;

1 个答案:

答案 0 :(得分:0)

SHOCK HORROR! Mysql 忽略检查约束!

Mysql“supports”仅在允许创建表语句时检查约束,但仅限于兼容性与从其他数据库导出的模式 - 一旦定义,它们将被完全忽略。< / p>

使用触发器来强制执行此类约束。