Sql 重新启动自动递增

Sql 重新启动自动递增,sql,mysql,Sql,Mysql,我有一个带有id字段的表,设置为自动递增 但是,假设我插入10条记录,然后清空表,第一条新记录将是id号11 为什么会出现这种情况?有没有办法防止这种情况发生?自动增量不会在删除后自动重置 截断表tbl_名称 将删除所有记录并重置自动增量字段,或者您可以使用 ALTER TABLE tbl_name AUTO_INCREMENT=1 他们这样做是为了维持秩序。您不能仅仅决定要对ID列重新编号,因为这可能会违反主键和/或外键约束。看看这篇文章,也许会更有意义。对于关系数据库领域的初学者来说,这是

我有一个带有id字段的表,设置为自动递增

但是,假设我插入10条记录,然后清空表,第一条新记录将是id号11


为什么会出现这种情况?有没有办法防止这种情况发生?

自动增量不会在删除后自动重置

截断表tbl_名称

将删除所有记录并重置自动增量字段,或者您可以使用

ALTER TABLE tbl_name AUTO_INCREMENT=1

他们这样做是为了维持秩序。您不能仅仅决定要对ID列重新编号,因为这可能会违反主键和/或外键约束。看看这篇文章,也许会更有意义。对于关系数据库领域的初学者来说,这是一个深入的主题


如果您刚刚开始,我建议您对约束和一般情况进行更多的研究。

有没有办法将id字段设置为smart?也就是说,如果最后一条记录的id为11,我将其删除,那么新记录应该是id为11而不是12的记录?@Jacop-不太可能。当您使用ALTER TABLE tbl_name AUTO_INCREMENT=n删除最后一行时,您可以自己做这件事,但一般来说,最好是接受这样一个事实,即序列中会有间隙。如果有,对你的应用程序有什么影响吗?没有区别,只是为了美观。谢谢你的回答。