我正在从表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/

10-15 19:38