簡體   English   中英

創建觸發器時MySQL語法錯誤

[英]MySQL syntax Error on Create Trigger

這是我的觸發器,我收到了MySQL語法錯誤。 我想減少來自sms_index sms_count 值的余額。

 CREATE TRIGGER sms_log_update AFTER UPDATE ON sms_index
  FOR EACH ROW
  BEGIN
    IF NEW.approved_status = '1' THEN
      UPDATE  sms_package SET  balance =  (balance - OLD.sms_count) WHERE  group_id = OLD.ins_group_id;
    END IF;
  END;

錯誤信息:

 #1064 - 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 '' at line 5 

您的代碼看起來正確,除了定界符可能存在的問題。 請嘗試以下操作:

DELIMITER //
CREATE TRIGGER sms_log_update AFTER UPDATE ON sms_index
FOR EACH ROW
BEGIN
    IF NEW.approved_status = '1' THEN
        UPDATE  sms_package SET  balance =  (balance - OLD.sms_count)
        WHERE  group_id = OLD.ins_group_id;
    END IF;
END;

DELIMITER ;

文檔中

但是,就像存儲例程一樣,如果使用mysql程序定義執行多個語句的觸發器,則必須重新定義mysql語句定界符,以便可以使用;。 觸發器定義內的語句定界符。

暫無
暫無

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

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