简体   繁体   中英

Error creating a trigger to skip lines on insert in MySQL

I am having an error and I can't make sense of it. Here is the code for my trigger:

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;

I am getting red errors marks in MySQL workbench source code editor for 3 lines. For the line that begins SIGNAL SQLSTATE ... , It says:

Syntax Error: missing 'semicolon'

For the line that reads END IF; , the error says:

Syntax error: END (end) is not valid input as this position.

For the line that reads END; , the error says:

Extraneous input found - expected end of statement

Just not sure how to fix these errors, from what I've seen this looks like the correct syntax...

Try this one, with $$ after 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 ;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM