1

可能重复:
如何重用 auto_increment 值?

我有一个表,它有一个auto-increment ID -column 作为它的primary key,但是我遇到了一个“问题”,即每当key删除 a 时,都会产生一个间隙。这当然不是问题,但看起来不是很整洁。有没有一种简单的方法让 MySQL 使用第一个可用的未使用的ID数字,而不是 ' next ' 中的数字sequence?我希望我的问题是有道理的。

4

2 回答 2

4

恕我直言,您想要完成的不是一个好主意。考虑到这一点;还有其他Table可能与primary key您刚刚删除的 s 相关联。

假设您在与已删除 primary key关联的其他表上有现有值:当您插入一个primary key从间隙中获取的新条目时,您将拥有与其他表关联的值。你不会想要那个。当然,除非您在删除主键时清理所有表,否则工作量很大。可能还不够。Delete Cascade

于 2012-10-19T05:06:10.373 回答
1

不使用自动增量。如果您真的想要,您可以更改您的 INSERT 以专门插入 id,并将其设置为类似 的内容1+(select max(id) from your_table_name),尽管如果在使用时表中没有行,您可能需要稍微修改它以使其正常运行。如果您这样做,请确保它是一个插入查询的一部分,而不是一个选择后跟一个插入。

但是你为什么担心“整洁”呢?如果您想显示带有序号的内容,只需以其他方式执行此操作,并且不要显示 id。

于 2012-10-19T05:20:23.037 回答