我正在尝试创建一个表来对我的电影表强制执行以下约束
这是我的触发器:
Create trigger trigger1 before insert on movies
For each row
Begin
If (year < 1929 or length <30 or length > 480) then
Set message_text = “Invalid Input”’
End If
End
这是否是在这种情况下强制执行约束的正确方法?或者我应该做些什么?
答案 0 :(得分:1)
MySQL目前不支持检查约束。
您可以定义一个,但引擎会默默忽略。 他们被允许定义未来的支持。
您可以添加显式触发器以使用正确的消息抛出错误状态。
示例:
signal sqlstate 1062 set message_text = error_message;
更改您的触发器主体,如下所示:
Create trigger trigger1 before insert on movies
For each row
Begin
If (year < 1929 or length <30 or length > 480) then
Set error_message = 'Invalid Input ';
signal sqlstate 1062 set message_text = error_message;
End If;
End