创建触发器以在MySQL中插入时跳过行时出错

mep*_*218 2 mysql sql t-sql triggers

我有一个错误,我无法理解它.这是我的触发器的代码:

CREATE TRIGGER before_insert_test
BEFORE INSERT ON player_totals FOR EACH ROW
BEGIN
    IF NEW.Player = 'Player' THEN
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'basketball-reference duplicate header';
    END IF;
END;
Run Code Online (Sandbox Code Playgroud)

我在MySQL workbench源代码编辑器中获得3行的红色错误标记.对于开始的线SIGNAL SQLSTATE ...,它说:

语法错误:缺少'分号'

对于读取的行,END IF;错误说:

语法错误:END(end)无效输入此位置.

对于读取的行,END;错误说:

发现无关输入 - 预期结束语

只是不确定如何修复这些错误,从我看到的这看起来像正确的语法...

Hav*_*ame 9

尝试这一个,$$之后END

DELIMITER $$

CREATE TRIGGER before_insert_test
BEFORE INSERT ON player_totals 
FOR EACH ROW
BEGIN
    IF NEW.Player = 'Player' THEN
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'basketball-reference duplicate header';
    END IF;
END; $$

DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

  • 如果在Delimiter和分号之间放置一个空格,则由于某种原因不再有错误标记. (2认同)