sql的自增列如何重置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql的自增列如何重置相关的知识,希望对你有一定的参考价值。

做项目的时候插入了一些测试数据,现在完成了,需要清空数据库,但是自增列无法重置,我插测试数据的时候,ID以后到了100多,现在数据清空了,在插数据,还是接着100多开始.怎么样才能清空这个ID列的自增值啊
PS:表和表之间都有关系,这个表的主键ID列在其它表中有引用
无法使用Truncate table语句,急 !!!

--操作的过程中,注意一点,标识列自增是不能修改的,那么首先
--去除该列自增的标识,然后再修改id,成功修改后,再加上标识
--r如果不修改标识,会报错:“无法更新标识列”

create table #a
(ids int,
names varchar(100)
)

--插入测试数据,序号从100开始的,表示你当前表的情况
declare @a int
set @a=100
while @a<200
begin
insert #a(ids)
select @a
set @a=@a+1
end

--假定还有一个#b表也引用了该序号
--插入测试数据到#b
select ids n_id,names ff into #b from #a

--好,现在开始处理序号问题了,用临时表#tmp过渡
--这里用了一个标识列,请注意!
--将带一个新的序列的数据插入到表#tmp中
select identity(int,1,1) flag, * into #tmp from #a

--看看结果是不是有了新的序列了,呵
select * from #tmp

--那么现在就利用#tmp表来更新所有用到该序列的表

--更新#a
update #a set ids=flag from #a a,#tmp b where a.ids=b.ids

--更新其他表引用了该序列的,比如#b
update #b set n_id=flag from #b a,#tmp b where a.n_id=b.ids
参考技术A 删掉自增的字段,保存,再重新添加自增字段.或者给表生成一个脚本,之后运行脚本,相当于重新建立.之后表的自增字段就会使从1开始了. 参考技术B 先在设计里去掉自动增量,然后把值改为0或1,然再改字段为自动增量,或者导出表结构后,删除原表,新建一个表 参考技术C 先取消自增 保存后 在重新自增 就可以了

Mysql 重置自增列的开始序号

最近项目中需要重置mysql表的自增序列号,特此记录便于日后查阅。 

TRUNCATE TABLE table_name;

注:该方法会把表中数据全部删除

到此 Mysql 重置自增列的开始序号介绍完成。

以上是关于sql的自增列如何重置的主要内容,如果未能解决你的问题,请参考以下文章

怎么重置mysql的自增列AUTO_INCREMENT初时值

Mysql 重置自增列的开始序号

Mysql 重置自增列的开始序号

mysql数据库如何消除自增列的自增功能?

如何修改MySql自增列的值

SQL 如何在自增列插入指定数据