このトリガーの後、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、一般提供)に記載されているとおり:
修正されたバグ
[ deletia ]
- トリガーによって発生した警告は、正常に完了してもクリアされませんでした。SQL標準に従って、トリガーが正常に完了すると警告がクリアされるようになりました。(バグ#55850)
トリガーが作成されましたか?2つのエラーがあります。
代わりにこのステートメントを使用してみてください-
SIGNAL SQLSTATE '01002' SET MESSAGE_TEXT = 'MSG';