可能重复:
如何重用 auto_increment 值?
我有一个表,它有一个auto-increment ID
-column 作为它的primary key,但是我遇到了一个“问题”,即每当key
删除 a 时,都会产生一个间隙。这当然不是问题,但看起来不是很整洁。有没有一种简单的方法让 MySQL 使用第一个可用的未使用的ID
数字,而不是 ' next ' 中的数字sequence
?我希望我的问题是有道理的。
可能重复:
如何重用 auto_increment 值?
我有一个表,它有一个auto-increment ID
-column 作为它的primary key,但是我遇到了一个“问题”,即每当key
删除 a 时,都会产生一个间隙。这当然不是问题,但看起来不是很整洁。有没有一种简单的方法让 MySQL 使用第一个可用的未使用的ID
数字,而不是 ' next ' 中的数字sequence
?我希望我的问题是有道理的。
恕我直言,您想要完成的不是一个好主意。考虑到这一点;还有其他Table
可能与primary key
您刚刚删除的 s 相关联。
假设您在与已删除 primary key
关联的其他表上有现有值:当您插入一个primary key
从间隙中获取的新条目时,您将拥有与其他表关联的值。你不会想要那个。当然,除非您在删除主键时清理所有表,否则工作量很大。可能还不够。Delete Cascade
不使用自动增量。如果您真的想要,您可以更改您的 INSERT 以专门插入 id,并将其设置为类似 的内容1+(select max(id) from your_table_name)
,尽管如果在使用时表中没有行,您可能需要稍微修改它以使其正常运行。如果您这样做,请确保它是一个插入查询的一部分,而不是一个选择后跟一个插入。
但是你为什么担心“整洁”呢?如果您想显示带有序号的内容,只需以其他方式执行此操作,并且不要显示 id。