mysql - Mysql中的列id

标签 mysql

我有一个表,其中第一列是像这样定义的自动递增 id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT

现在我想删除一些包含NULL的行,之后id不一致,有什么办法可以让它们自动调整?就像现在我删除了第一行,所以 id 在我的表中从 2 开始,我还删除了中间的一些行。

最佳答案

它是主键,不应该遵循您认为的逻辑。如果您有顺序值 1、2、3、4、5,然后删除 ID = 3 的值,则您不能重复使用值 3

后果很严重,只是不要试图强制 MySQL 重用您已删除的值。

如果您出于“美观”显示的目的需要某种排序,请不要依赖 id 列的值。它是一个主键,它的存在只是为了让每一行都可以唯一标识,从而使其实际值在外界看来毫无意义。

我知道人们通常希望他们的数字是连续的,而且差距看起来很难看,但如果您需要实现它,请使用您将手动更新的其他一些列来实现它。

请记住,永远不要自己触摸主键

关于mysql - Mysql中的列id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8325853/

相关文章:

mysql - 在以下情况下我将如何提高性能

mysql - 如何更改超过 1 列的表列数据类型?

php - MYSQL Like 只查询关键字匹配大小写

mysql - 将具有唯一字段的记录移动到第二个表中

mysql select MAX 但显示不符合预期

mysql - 用MySQLi搭建的数据库能成功迁移到MySQL数据库吗?是否可以向后兼容?

php - 使用 mysql 进行多个条件搜索的 sql 查询

MYSQL 解释给出 “Impossible WHERE” 和 SELECT Count(x) 查询

mysql - 无法为插入查询绑定(bind)多部分标识符

mysql - 导出/导入时设置字段终止符的默认值