在此触发器之后,如果我在 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 行受影响
在此触发器之后,如果我在 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 行受影响
如MySQL 5.5.8 (2010-12-03, General Availability) 中的更改中所述:
已修复的错误
[ deletia ]
- 成功完成后未清除触发器引发的警告。现在,根据 SQL 标准,如果触发器成功完成,则会清除警告。(错误#55850)
您确定触发器已创建吗?我有两个错误。
尝试改用此语句 -
SIGNAL SQLSTATE '01002' SET MESSAGE_TEXT = 'MSG';
信号语法。