【发布时间】:2018-08-04 11:55:25
【问题描述】:
我有下表:
字段id 设置为AUTO_INCREMENT。我希望字段user_id 具有与id 相同的值。
首先,我尝试将user_id 设置为AUTO_INCREMENT,但这无法完成,因为一个表中只能有一个AUTO_INCREMENT 字段。
其次,我尝试编写一个触发器,将值从id 分配给user_id:
create trigger 'upd' before update
on 'obligations'
for each row
set old.user_id = old.id;
这会产生以下错误:
ERROR 1362 (HY000): Updating of OLD row is not allowed in trigger
有人可以建议如何解决这个问题吗?
注意:我的问题不同,因为它给出了 OLD 触发器语句错误,而不是 NEW 触发器语句错误。
【问题讨论】:
-
在
after update触发器中设置user_id -
@L. Declercq,但我的错误是关于旧的,而不是新的。
-
@guigoz,“更新后”仍然出现同样的错误。
-
但你必须处理
new值,因为你将拥有一个新的递增 id
标签: mysql triggers auto-increment