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、一般提供)に記載されているとおり:

修正されたバグ

[ deletia ]

  • トリガーによって発生した警告は、正常に完了してもクリアされませんでした。SQL標準に従って、トリガーが正常に完了すると警告がクリアされるようになりました。(バグ#55850
于 2012-12-17T09:25:00.913 に答える
1

トリガーが作成されましたか?2つのエラーがあります。

代わりにこのステートメントを使用してみてください-

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

SIGNAL構文

于 2012-12-17T08:31:55.753 に答える