2014-11-04 53 views
1

我想在MySql 5.6.20中創建InnoDB數據庫的觸發器。我想執行多個查詢,對同一類型的觸發器和開始/結束方法(?解決方法)似乎爲他人在這裏工作:Multiple insert/update statements inside trigger?MySQL多觸發器(使用BEGIN/END)無法創建

CREATE Trigger tg_month_avg_tst AFTER UPDATE ON eventlog 
    FOR EACH ROW BEGIN 
    UPDATE month_avg set month = '9' where id = '585'; 
    END; 

這將失敗與SQL語法錯誤。如果我刪除BEGINEND;扳機被添加和功能正常:

CREATE Trigger tg_month_avg_tst AFTER UPDATE ON eventlog 
    FOR EACH ROW 
    UPDATE month_avg set month = '9' where id = '585'; 

什麼在阻止觸發器在第一個例子中被創造出來的?

回答

2

您需要定義除;之外的另一個分隔符。

delimiter | 
CREATE Trigger tg_month_avg_tst AFTER UPDATE ON eventlog 
    FOR EACH ROW BEGIN 
    UPDATE month_avg set month = '9' where id = '585'; 
    END 
| 
delimiter ; 

否則DB會認爲你的觸發器定義在第一;結束這將使它不完整的,缺少endbegin