我想插入一行并在之后的所有其他行中增加一个值。有没有办法在单个 sql 插入中做到这一点?
id | value
------------
a | 0
b | 1
c | 2
插入 d | 2应该使数据库看起来像这样:
id | value
------------
a | 0
b | 1
d | 2
c | 3
您可以尝试创建一个插入前触发器,该触发器将相应地更新旧值。您的数据库是否支持触发器?
我同意乔治·弗雷梅斯库的观点。AFTER INSERT TRIGGER
听起来像是要走的路。
CREATE TRIGGER <triggername> AFTER
INSERT ON <tablename> WHEN
(
-- Update logic here
)
要获取最后插入的行 ID,您应该使用last_insert_row()
.