gpt4 book ai didi

php - 重新排序 MySQL 表中的 id 列?

转载 作者:行者123 更新时间:2023-11-29 00:53:10 25 4
gpt4 key购买 nike

我有一个表,其中列名 id 以及 PRIMARY KEYAUTO INCREMENT 的设置。当表中途删除一行时,即第 1-70 行中的第 29 行,id 29 将简单地消失。是否有可能让行向上移动,但 id 保留在那里,即删除 70 而不是 29,这样具有 id 30 的行现在将采用 29、31 将采用 30 等?

如果可能的话,在我的例子中,这将使向表中插入新数据变得容易得多。

我真的很想在创建新值之前用完这些值,所以要么这很好,要么寻找缺失值并更新它们。

更新:

我想说的是,获取特定行上方的行,如果所有 id 列都按直接值顺序排列(没有间隙),那么我就可以相对轻松地完成此操作.

最佳答案

一般来说,更新数据库中的主键很麻烦,因为这通常会在引用该主键的所有表中设置一系列更新。许多引擎允许您使用 CASCADE 选项强制此更新自动发生,但它仍然会导致大量不必要的数据库更新。

自动递增整数主键的正常使用是作为永久的、无意义的、不可变的值。

就是说,如果您真的想要更新这些 key ,您可以使用命令来完成

 UPDATE YourTable SET id = id - 1 WHERE id > (value you deleted)

或者,您可以维护第二个整数列,而不是表的主键,并在每次删除后更新此列。

关于php - 重新排序 MySQL 表中的 id 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7382060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com