如何纠正MySQL"在插入之前"触发器的语法?

时间:2014-11-23 20:17:57

标签: mysql triggers

我正在从表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之后添加“;”),但没有明显的效果。可能是我也完全错了。

任何帮助表示赞赏!

谢谢,

Jona的

1 个答案:

答案 0 :(得分:2)

我不是100%确定你想从触发器中完成什么。我假设您有一个名为item的表,并且您希望使用checkoutDateitem.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 ;