我想插入一行并在之后的所有其他行中增加一个值。有没有办法在单个sql插入中执行此操作?
id | value
------------
a | 0
b | 1
c | 2
插入d | 2应该使DB看起来像这样:
id | value
------------
a | 0
b | 1
d | 2
c | 3
答案 0 :(得分:4)
您可以尝试创建一个before insert触发器,它将相应地更新旧值。您的数据库是否支持触发器?
答案 1 :(得分:3)
我同意George Vremescu。 AFTER INSERT TRIGGER
听起来像是要走的路。
CREATE TRIGGER <triggername> AFTER
INSERT ON <tablename> WHEN
(
-- Update logic here
)
要获取最后插入的行ID,您应该使用last_insert_row()
。