2012-02-07 27 views
1

我需要一些幫助寫一個MySQL觸發 我想要做的是自動增量ID的計算hashe值,並將其存儲在單獨的列:Updata公司計算領域的「AFTER INSERT」觸發

create trigger hashing after insert on categories 
for each row begin 
    set new.hashed = md5(CONCAT("key",`categories `.`id`)); 
end; 

但我得到的錯誤:

[Err] 1362 - Updating of NEW row is not allowed in after trigger 

有人可以幫助我實現我需要的是這可以在所有使用觸發器

感謝

012?

回答

2

您正在嘗試執行的操作不受支持。

您只能在BEFORE INSERT觸發器中設置「散列」列的值,而不是AFTER INSERT觸發器。

但是,您無法訪問BEFORE INSERT觸發器中自動增量「id」列的值,因爲該值尚未知。

如果您決定通過觸發器執行此操作,則一種選擇是創建單獨的表來存儲哈希值(以及用於引用「類別」表的外鍵),並使用AFTER INSERT觸發您的「類別」表。