php - 自动修复丢失的 ID

标签 php mysql sql

我需要长期解决困扰我几个月的问题。 问题是,每次我从数据库中删除一行数据时,ID 都会变得困惑。甚至自动增量系统也会变得困惑。这个问题有什么解决办法吗?

这就是我的意思: The problem

谢谢, CrAzYz_

最佳答案

这对于评论来说太长了(尽管我确实尝试过)。

当一行插入数据库时​​,它应该有一个主键。这样,您就可以唯一地标识该行(例如更新删除)。并且,您可以显式引用它(使用 join 或外键引用)。这是拥有主键的一个关键目的。

在MySQL中,这个主键通常使用auto_increment来分配。这是在插入行时分配给行的序列号。

删除行后,主键不会更改。这非常重要。其他行可能会引用它们。有人可能已经写下了该行的 id,并可能希望下次查看时它会出现在数据库中。

换句话说,您正在寻找不合适的功能。我的建议是“克服它”。自动递增的 id 正在执行它应该执行的操作。没有理由改变它,所以没有间隙。

关于php - 自动修复丢失的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43029017/

相关文章:

PHP脚本无法格式化日期

php - 动态生成的复选框不将所有值插入数组

PHP/mysql 查询缺少行

python - 如何使用 python 有效地与另一个数据库交互

sql - ORACLE中的行到列

php - 使用 Web 服务的 Codeigniter 分页

php - 如何使用 '$row' 将一个数据库表中的特定值插入到另一个数据库表中?

php - 转义以插入到 MySql

php - 在 FROM 子句中使用 CONCAT

mysql - 与 sql_mode 'only_full_group_by' 不兼容但未设置