我需要有关插入后触发器的帮助。

我想在插入后抛出异常消息,但是插入不会被中止。

我该怎么做?提前致谢。

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'

10-04 13:58