为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

德玛西亚99 2019-08-13 14:30:45
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语句中的插入?
查看完整描述

3 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

基于此,我不确定是否可以这样做。

MySQL的当前触发器实现不支持自动抛出异常并中止产生触发器的语句。

我发现的解决方法是编写一个BEFORE触发器,将表中的一个非NULL列设置为NULL,从而违反其NOT NULL约束。这会导致产生触发器的语句被中止。


查看完整回答
反对 回复 2019-08-13
?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

我不知道是否要迟到但你现在可以这样做:

SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = "your error text";

PS不要忘记在触发器之前和之后修改分隔符...


查看完整回答
反对 回复 2019-08-13
  • 3 回答
  • 0 关注
  • 5690 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信