簡體   English   中英

Mysql觸發器上的錯誤1064

[英]Error 1064 on Mysql trigger

我正在MySQL中編寫觸發器以記錄表更新。 日志表稱為individuo_storico,目標表稱為individuo。 更新individuo時,我想檢查IDQualifica和IDLivello是否已更改,如果是,則插入individuo_storico中的記錄。

我寫下了這段代碼,但是出現了#1064錯誤,語法錯誤在哪里?

use ore;
create trigger individuo_update after update on individuo
for each row
begin
    if ( NEW.IDLivello <> OLD.IDLivello or NEW.IDQualifica <> OLD.IDQualifica) then
        insert into individuo_storico(IDIndividuo, IDQualifica, IDLivello) 
        values (NEW.IDIndividuo, NEW.IDQualifica, NEW.IDLivello);
    end if;
end;

1064-您的SQL語法有誤; 檢查與您的MySQL服務器版本相對應的手冊以獲取在第6行的''附近使用的正確語法

請使用必要的綽號包裝觸發器的創建內容,以免db引擎阻塞它。 所以三個方面:

1) line 1
2) right after the end; 
3) and then a reset to a default delimiter. 

存儲的proc創建中通常具有相同的概念。

DELIMITER $$
create trigger individuo_update after update on individuo
for each row
begin
    if ( NEW.IDLivello <> OLD.IDLivello or NEW.IDQualifica <> OLD.IDQualifica) then
        insert into individuo_storico(IDIndividuo, IDQualifica, IDLivello) 
        values (NEW.IDIndividuo, NEW.IDQualifica, NEW.IDLivello);
    end if;
end;$$
DELIMITER ;

暫無
暫無

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

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