2012-02-07 83 views
4

我有一个表中有9条记录,但我想在第5和第6条记录之间插入一行。如何在Sql中的两个现有行之间的表中插入一行

+2

为什么?当您查询表格时,您是否不想订购结果? – 2012-02-07 13:35:15

+1

什么?表格存储中的行的物理排序对性能没有任何影响,并且在大多数数据库中,你问的是不可能的。 – 2012-02-07 13:36:18

+0

我想他想移动,例如,歌曲在另一首歌曲前的一个位置的列表中? ... – 2012-02-07 13:37:06

回答

3

通常,您不要在表中的特定位置插入一行。

如果“order”行很重要并且有一些特殊的语义,请将数据反映到表结构中正确的列上。

然后使用SELECT ... ORDER BY ...来获得排序的行。

9

如果你坚持

UPDATE mytable SET id = id + 1 where id > 5 ORDER BY id ASC 

insert into mytable (id,..) values (6,...) 
+1

你需要ORDER BY ID DESC,以便它从底部向上递增,并避免重复的ID错误。 – postelrich 2015-07-22 14:46:49

+0

@postelrich是如此的正确! – 2016-10-04 03:21:48

相关问题