我有一个触发器AFTER INSERT,我必须更新刚刚插入的行的列的值。我显然不能使用:
SET new.column = value;
我试图在触发器中进行手动更新,但也不允许这样做。
有没有简单的方法来解决这个问题?
非常感谢!
答案 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触发器。