mysql sintax用于在中间行或我们想要的任何地方插入新行而不更新现有行,而是自动增加主键(id)?
' id | value ' 1 | 100 ' 2 | 200 ' 3 | 400 ' 4 | 500
我想在id 2之后插入一个新行,其值=300。我希望输出如下:
' id | value ' 1 | 100 ' 2 | 200 ' 3 | 300 <-- new row with id (automatic increment) ' 4 | 400 <-- id=id+1 ' 5 | 500 <-- id=id+1
谢谢。
您将不得不将其分为2个操作。
START TRANSACTION; UPDATE table1 SET id = id + 1 WHERE id >= 3 order by id DESC; INSERT INTO table1 (id, value) VALUES (3, 300); COMMIT;
请注意,您需要order by在update语句中使用,因此它将首先从最高ID开始。
order by
另一个想法是在2到3之间声明idas decimal(10,1)并将值插入2.5id。
id
decimal(10,1)
2.5