我正在从表ItemBorrower创建一个触发器,该触发器用于更新表Item中的字段。当ItemBorrower插入新条目时,应将Item表中的currentDate字段更新为今天的日期。这是我的触发器:
CREATE TRIGGER checkoutItem BEFORE INSERT ON ItemBorrower
FOR EACH ROW UPDATE Item
BEGIN
SET Item.checkoutDate = CURDATE()
WHERE NEW.itemID = Item.itemID
END;
我得到的错误是关于最后一行:
您的SQL语法有误。检查手册
对应于您的MySQL服务器版本以使用正确的语法
在第8行的“ END”附近
我试过了定界符(将其删除,在Item.itemID之后添加“;”),但没有任何用处。可能是我也完全犯错了。
任何帮助表示赞赏!
谢谢,
乔纳
最佳答案
我不是100%知道您要如何从触发器中实现目标。我假设您有一个名为item的表,并且想用当前日期更新checkoutDate
列,而item.itemID = the last insert id
中的ItemBorrower
。
试试这个代码
delimiter //
CREATE TRIGGER checkoutItem BEFORE INSERT ON ItemBorrower
FOR EACH ROW
BEGIN
UPDATE Item
SET checkoutDate = CURDATE()
WHERE itemID = NEW.itemID;
END; //
delimiter ;
关于mysql - 如何更正MySQL“插入前”触发器的语法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27093815/