如何在AFTER INSERT触发器中更改列值?

时间:2009-11-16 07:32:14

标签: mysql

我有一个触发器AFTER INSERT,我必须更新刚刚插入的行的列的值。我显然不能使用:

SET new.column = value;

我试图在触发器中进行手动更新,但也不允许这样做。

有没有简单的方法来解决这个问题?

非常感谢!

2 个答案:

答案 0 :(得分:4)

AFTER触发器通常用于更新正在更新的行以外的其他内容。例如,如果您想记录已进行更新的事实,则AFTER触发器是理想的。

要在插入列时更改列的值,您需要使用before触发器。例如

CREATE TRIGGER modify_column BEFORE INSERT ON mytable SET @column = value;

其中value是查询,预定义值或NEW.column

答案 1 :(得分:1)

由于INSERT在AFTER被触发时已经完成,我认为你必须编写T-SQL来根据主键更改值。

如果要在插入之前更改它,您可能需要考虑转移到BEFORE触发器。