我想在MySQL中使用CHECK约束,但不受支持。(与其他RDBMS不同,它将理解但不强制执行CHECK。)
我已经看到了一些使用触发器的解决方法。但是他们倾向于为相关字段设置默认值,而不是返回错误。
如果不满足条件,是否可以构造一个返回错误的触发器?
最终,我想要一个复制CHECK约束的触发器。
尝试以下语法
CREATE TRIGGER mytabletriggerexample BEFORE INSERT FOR EACH ROW BEGIN IF(NEW.important_value) < (fancy * dancy * calculation) THEN DECLARE dummy INT; SELECT Your meaningful error message goes here INTO dummy FROM mytable WHERE mytable.id=new.id END IF; END;