2012-11-18 62 views
0

在MySQL中,我剛剛設置了此觸發器來設置一個表的最後修改日期把它插入到一個鏈接表無法更新存儲的函數/觸發器中的表,因爲它已被調用此存儲函數/觸發器的語句使用

create trigger trg_badge after insert on tbl_badge for each row 
UPDATE tbl_sub_model SET last_modified_date = NOW() 
WHERE sub_model_sk = NEW.sub_model_sk; 

當我運行,填補tbl_sub_model然後tbl_badge的腳本,我得到:

Error Code: 1442. Can't update table 'tbl_sub_model' in stored 
function/trigger because it is already used by statement which 
invoked this stored function/trigger. 

事情做工精細當我插入使用一個單獨的腳本,但只是沒有如果兩個聲明在sa中我的腳本。有沒有用同樣的.sql腳本插入兩個表的方法?

+1

你有'tbl_sub_model'上的觸發器插入'tbl_badge'嗎? – eggyal

+0

不,不過tbl_badge上有一個引用tbl_sub_model的外鍵。我的懷疑是,SQL腳本鎖定tbl_sub_model被觸發器編輯,因爲它在早些時候插入它,但不知道如何分開命令 –

+0

+1抽出時間來幫助 –

回答

0

啊...解決了它,我的insert語句將tbl_sub_model加入到其他幾個函數中,以便獲得與正確的新記錄相關的sub_model_sk。

現在我知道我只是在腳本的末尾創建觸發器,沒有什麼大不了的。

相關問題