hel*_*234 5 mysql check-constraints mysql-workbench
这里我想在记录插入数据库之前创建2个CHECK约束.
ALTER TABLE SubjectEnrollment
ADD CONSTRAINT register CHECK (register <= classSize AND register >=0),
ADD CONSTRAINT available CHECK (available <= classSize AND available >= 0);
Run Code Online (Sandbox Code Playgroud)
当我在MySql Workbench中键入此语法时,它会抛出"语法错误:意外'检查'(检查)'.我应该如何使用TRIGGER添加这些?
谢谢.
由于MySQL不支持check,你需要一个触发器.像这样的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
$$
Run Code Online (Sandbox Code Playgroud)
您需要为UPDATEs 定义相同的触发器.