更新"插入后的计算字段或#39;触发

时间:2012-02-07 16:19:18

标签: mysql triggers

我需要一些帮助来编写MySQL触发器。 我想要做的是计算自动增量ID的值,并将其存储在单独的列中:

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

有人可以帮我实现我的需要吗?这有可能使用触发器吗?

由于

1 个答案:

答案 0 :(得分:2)

不支持您尝试做的事情。

您只能在BEFORE INSERT触发器中设置“哈希”列的值,而不是AFTER INSERT触发器。

但是,您无法访问BEFORE INSERT触发器中自动增量“id”列的值,因为该值尚未知晓。

如果您决定通过触发器执行此操作,则一个选项是创建一个单独的表来存储散列值(以及引用“categories”表的外键),并使用{插入到该表中{1}}触发“类别”表。