数据库自增的主键不连续问题

问题:数据库自增的主键不连续,SQL的自增列挺好用,只是开发过程中一旦删除数据,标识列就不连续了,写起来,也很郁闷。

Mysql

当清空一个表的时候,重新插入数据,发现auto_increment属性的字段计数不是从1开始的时候,可以使用以下命令

  1. 手动修改

MySQL可以手动去修改主键,但是主键一般不会修改。
还可以插入哪些被删除的主键。

  1. 删库

方法一

delete from test;
alter table `test` auto_increment=1

(好处,可以设置AUTO_INCREMENT 为任意值开始)
提示:如果表列和数据很多,速度会很慢,如90多万条,会在10分钟以上。

方法二

truncate table test

(好处,简单,AUTO_INCREMENT 值重新开始计数)

一般情况下我们使用第二个就可以了,记住以上情况都是彻底删除所有记录。

SqlServer

–删除原表数据,并重置自增列

truncate table tablename  --truncate方式也可以重置自增字段

–重置表的自增字段,保留数据

DBCC CHECKIDENT (tablename,reseed,0) 

– 设置允许显式插入自增列

SET IDENTITY_INSERT tablename  ON

– 当然插入完毕记得要设置不允许显式插入自增列

SET IDENTITY_INSERT tablename  Off
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容