问题:数据库自增的主键不连续,SQL的自增列挺好用,只是开发过程中一旦删除数据,标识列就不连续了,写起来,也很郁闷。
Mysql
当清空一个表的时候,重新插入数据,发现auto_increment属性的字段计数不是从1开始的时候,可以使用以下命令
手动修改
MySQL可以手动去修改主键,但是主键一般不会修改。
还可以插入哪些被删除的主键。
删库
方法一
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