簡體   English   中英

如何更正MySQL“插入前”觸發器的語法?

[英]How to correct a MySQL “BEFORE INSERT” trigger's syntax?

我正在從表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%知道您要如何從觸發器中實現目標。 我假設你有一個表稱為項目,要更新checkoutDate與在當前日期列item.itemID = the last insert idItemBorrower

試試這個代碼

delimiter //
CREATE TRIGGER checkoutItem BEFORE INSERT ON ItemBorrower
FOR EACH ROW
BEGIN
    UPDATE Item
    SET checkoutDate = CURDATE()
    WHERE itemID = NEW.itemID;

END; //
delimiter ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM