我遇到了MySQL的问题,检查约束不起作用...... 这是我输入的查询:
create table courses(cid int(5) primary key,no_s int(2) check(no_s>=0 AND no_s<=5));
这样每门课程最多可以有5名学生(只是一个例子).. 但是当我输入以下查询时:
insert into courses values(1,7);
MySQL接受查询并执行它,虽然我指定检查0到5之间的数字并在Google中快速搜索我发现它可能与MySQL模式有一些关系但是无法做到那工作。 你也需要知道我使用Wamp server 2.5和MySQL 5.6.17。
答案 0 :(得分:0)
MySQL当前不支持检查约束。
它接受输入但忽略它们。
您可以使用在某些条件下取消插入/更新的触发器
delimiter //
CREATE TRIGGER check_trigger BEFORE UPDATE ON your_table
FOR EACH ROW
BEGIN
IF (NEW.no_s not between 0 and 5) THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'check failed';
END IF;
END
//
delimiter ;