2012-02-07 38 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触发您的“类别”表。