使用 MySQL 检查约束



我在使用 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模式有关,但无法使其工作。您还需要知道我正在使用带有MySQL 2.5的Wamp服务器5.6.17。

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 ;

相关内容

  • 没有找到相关文章

最新更新