ALTER TABLE SubjectEnrollment
ADD CONSTRAINT register CHECK (register <= classSize AND register >=0),
ADD CONSTRAINT available CHECK (available <= classSize AND available >= 0);
> register属性不应超过classSize属性且小于0.
> available属性不应超过classSize属性且小于0.
当我在MySql Workbench中键入此语法时,它会抛出“语法错误:意外’检查'(检查)’.我应该如何使用TRIGGER添加这些?
谢谢.
解决方法:
由于MySQL不支持检查,因此需要触发器.像这样的CREATE触发器:
delimiter $$
CREATE TRIGGER some_trigger_name
BEFORE INSERT ON SubjectEnrollment
FOR EACH ROW
BEGIN
IF (NEW.register > NEW.classSize OR NEW.register < 0)
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'invalid data';
END IF;
END
$$
您需要为UPDATE定义相同的触发器.
标签:mysql,mysql-workbench,check-constraints
来源: https://codeday.me/bug/20190519/1134619.html