我需要有关插入后触发器的帮助。
我想在插入后抛出异常消息,但是插入不会被中止。
我该怎么做?提前致谢。
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终止,我们将无法继续。我们可以看到带有“ SHOW WARNINGS”语句的消息,对吗?
最佳答案
从"13.6.7.5 SIGNAL Syntax":
(...)SQLSTATE
语句的SIGNAL
值不应以'00'
开头,因为这样的值表示成功(...)
和
(...)以SQLSTATE
开头的'01'
值是警告类中的信号。 (...)
因此,请根据要发送成功消息还是警告来选择以SQLSTATE
或'00'
开头的'01'
。