我需要你的帮助。
我想在插入后抛出异常消息,但插入不会中止。
我该怎么做?提前谢谢。
CREATE TRIGGER `after_ins` AFTER INSERT ON `my_table` FOR EACH ROW
BEGIN
IF CURDATE() < '2018-08-01' THEN
signal sqlstate '45000' set message_text = 'an error message', MYSQL_ERRNO = 1905;
END IF;
END;
编辑:
在这种情况下,如果不使用45个sqlstate终止,我们就不能继续。我们可以看到带有“显示警告”语句的消息,对吗?
2条答案
按热度按时间ds97pgxw1#
根据“13.6.7.5信号语法”:
(…)the
SQLSTATE
a的值SIGNAL
语句不应以开头'00'
因为这样的值表示成功(…)和
(...)
SQLSTATE
以开头的值'01'
是警告级别的信号。(…)所以试着选择一个
SQLSTATE
开始于'00'
或者'01'
这取决于您是想发出成功消息还是警告。x8diyxa72#
sqlstate以45开头是错误并终止过程。sqlstate以01开头是警告,允许过程继续。有关信号,请参阅参考页,有关更多信息,请参阅第一个示例