我需要长期解决困扰我几个月的问题。 问题是,每次我从数据库中删除一行数据时,ID 都会变得困惑。甚至自动增量系统也会变得困惑。这个问题有什么解决办法吗?
这就是我的意思: The problem
谢谢, CrAzYz_
最佳答案
这对于评论来说太长了(尽管我确实尝试过)。
当一行插入数据库时,它应该有一个主键。这样,您就可以唯一地标识该行(例如更新
或删除
)。并且,您可以显式引用它(使用 join
或外键引用)。这是拥有主键的一个关键目的。
在MySQL中,这个主键通常使用auto_increment
来分配。这是在插入行时分配给行的序列号。
删除行后,主键不会更改。这非常重要。其他行可能会引用它们。有人可能已经写下了该行的 id,并可能希望下次查看时它会出现在数据库中。
换句话说,您正在寻找不合适的功能。我的建议是“克服它”。自动递增的 id 正在执行它应该执行的操作。没有理由改变它,所以没有间隙。
关于php - 自动修复丢失的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43029017/