我正在尝试创建一个BEFORE INSERT
触发器,并得到我不理解的错误。
用于创建触发器的MySQL如下所示:
CREATE TRIGGER `GetPolyLinkID` BEFORE INSERT ON `TableA`
FOR EACH ROW
BEGIN
INSERT INTO TableB () VALUES ();
NEW.PolyLinkID = last_insert_id();
END
我得到的错误是
您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的“ END”附近使用
答案 0 :(得分:1)
您忘记了SET
...成为了NEW.PolyLinkID = last_insert_id();
还有
要创建复杂的触发器,必须使用delimiter
关键字。
这是来自https://dev.mysql.com/doc/refman/5.6/en/trigger-syntax.html的示例。
delimiter //
CREATE TRIGGER upd_check BEFORE UPDATE ON account
FOR EACH ROW
BEGIN
IF NEW.amount < 0 THEN
SET NEW.amount = 0;
ELSEIF NEW.amount > 100 THEN
SET NEW.amount = 100;
END IF;
END;
//
delimiter ;
续集pro的屏幕截图