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的自增列如何重置的主要内容,如果未能解决你的问题,请参考以下文章