[英]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.