4

我想插入一行并在之后的所有其他行中增加一个值。有没有办法在单个 sql 插入中做到这一点?

id |  value
------------
a  |  0
b  |  1
c  |  2

插入 d | 2应该使数据库看起来像这样:

id |  value
------------
a  |  0
b  |  1
d  |  2
c  |  3
4

2 回答 2

4

您可以尝试创建一个插入前触发器,该触发器将相应地更新旧值。您的数据库是否支持触发器?

于 2013-01-18T13:23:02.970 回答
3

我同意乔治·弗雷梅斯库的观点。AFTER INSERT TRIGGER听起来像是要走的路。

CREATE TRIGGER <triggername> AFTER  
INSERT ON <tablename> WHEN 
(
   -- Update logic here
)

要获取最后插入的行 ID,您应该使用last_insert_row().

于 2013-01-18T13:41:22.537 回答