3

在此触发器之后,如果我在 foo.x 中插入 5,我不会收到警告

\d $
CREATE TRIGGER `tri` BEFORE INSERT ON `foo` FOR EACH ROW
BEGIN
    IF NEW.bar = 5 THEN
        SIGNAL SQLSTATE '01002' SET MESSAGE_TEXT = 'MSG';
    END IF;
END$\d ;

INSERT INTO `foo` values (5);

1 行受影响

4

2 回答 2

4

MySQL 5.5.8 (2010-12-03, General Availability) 中的更改中所述

已修复的错误

[ deletia ]

  • 成功完成后未清除触发器引发的警告。现在,根据 SQL 标准,如果触发器成功完成,则会清除警告。(错误#55850
于 2012-12-17T09:25:00.913 回答
1

您确定触发器已创建吗?我有两个错误。

尝试改用此语句 -

SIGNAL SQLSTATE '01002' SET MESSAGE_TEXT = 'MSG';
  • '010002' -> '01002'
  • TEXT_MESSAGE -> MESSAGE_TEXT

信号语法

于 2012-12-17T08:31:55.753 回答