猿问

MySQL触发器在某些条件下阻止INSERT

MySQL触发器在某些条件下阻止INSERT

我想制作一个触发器,如果未来的生日(其中一列),将阻止插入。我有这个:

CREATE TRIGGER foo
BEFORE INSERT ON tableFOR EACH ROWBEGIN
  IF NEW.birthdate > CURRENT_DATE()
  THEN
    //How do I prevent the insert right here???
  END IF;END;

如何取消if语句中的插入?


德玛西亚99
浏览 5691回答 3
3回答

qq_花开花谢_0

基于此,我不确定是否可以这样做。MySQL的当前触发器实现不支持自动抛出异常并中止产生触发器的语句。我发现的解决方法是编写一个BEFORE触发器,将表中的一个非NULL列设置为NULL,从而违反其NOT NULL约束。这会导致产生触发器的语句被中止。

侃侃尔雅

我不知道是否要迟到但你现在可以这样做:SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = "your error text";PS不要忘记在触发器之前和之后修改分隔符...
随时随地看视频慕课网APP
我要回答