用MySQL检查约束

时间:2015-06-15 09:48:08

标签: mysql constraints wampserver

我遇到了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。

1 个答案:

答案 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 ;