【问题标题】:Auto update unique id自动更新唯一 ID
【发布时间】:2013-02-25 04:21:44
【问题描述】:

我有一个表,其中有一个“id”列,它开启了 auto_increment。

例如,当我添加一条新记录时,它会为其分配一个编号。

但我需要的是一种可以更改记录顺序的方法,例如数据库中有 48 条记录,我希望记录 29 的 id 为 5 而不是 29。那么有没有办法记录29 来替换 5 并让他们都向上移动 1 所以 5 现在将是记录 6 等等?

谢谢!

【问题讨论】:

  • 你说的自动更新是什么意思?转移这些记录的具体规则是什么?下一步呢?
  • 你还想要自增id还是一直分配id?
  • @stark 不明白你的意思,我为什么不保持自动增量?
  • 因为要插入乱序值

标签: php mysql database auto-increment


【解决方案1】:

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

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

首先你要为新记录 5 清除空间:

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

那么你将因此重新编号记录 29

UPDATE table SET id=5 WHERE id = 29

【讨论】:

  • 为什么我不能将它与 auto_increment 一起使用?
  • 您可以将其与 auto_increment 一起使用。我的意思是,如果您需要担心记录的 id 值,那么 auto_increment 不是要走的路!
猜你喜欢
  • 1970-01-01
  • 2022-09-23
  • 1970-01-01
  • 2019-10-29
  • 2017-10-05
  • 1970-01-01
  • 2018-12-26
  • 2016-09-27
  • 1970-01-01
相关资源
最近更新 更多