我正在尝试创建一个 BEFORE INSERT
触发器,但出现了我不明白的错误。
创建触发器的 MySQL 如下所示:
CREATE TRIGGER `GetPolyLinkID` BEFORE INSERT ON `TableA`
FOR EACH ROW
BEGIN
INSERT INTO TableB () VALUES ();
NEW.PolyLinkID = last_insert_id();
END
我遇到的错误是
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 1
最佳答案
您忘记了SET
...开始NEW.PolyLinkID = last_insert_id();
还有
要创建复杂的触发器,您必须使用delimiter
关键字。
这是 rom 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 ;
续集专业版的屏幕截图
关于mysql - 如何创建 BEFORE INSERT 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58635701/