2013-03-09 62 views
0

我有一个表'id',其上有auto_increment。自动更新唯一标识号

因此,例如,当我添加一条新记录时,它会为其分配一个数字。

但我需要的是一种方式,我可以改变记录的顺序,所以例如在数据库中有48条记录,我希望记录29的ID为5而不是29。记录29取代5,并为他们所有提高一个,所以5现在会记录6等?

谢谢!

+0

你说的***自动更新意味着* **?转移这些记录的规则究竟是什么?前进怎么样? – Kermit 2013-03-09 18:06:37

+0

您是否仍然想要自动增量ID或您是否想要始终分配ID? – stark 2013-03-09 18:12:20

+0

我的意思是,如果当添加或更改记录唯一的'id'到已存在的记录时,它会自动移动它正在替换的一个和它上面的那个 – tech292 2013-03-09 18:13:15

回答

0

如果您需要自己分配ID,请不要使用自动增量列。

另一个问题是重新编号数据库表中的记录,是的,这可以通过一个有序的更新查询来完成。

首先你会清除空间的新纪录5这样的:

UPDATE table SET id=id+1 WHERE id > 4 ORDER BY id DESC 

,那么你会重新编号记录29从而

UPDATE table SET id=5 WHERE id = 29 
+0

你是不是指30? – stark 2013-03-09 18:25:56

+0

为什么我不能在auto_increment中使用它? – tech292 2013-03-09 18:27:39

+0

是的。 30你是对的! – 2013-03-09 18:31:10