对已经存在的没有唯一标识的表添加一个自增的id字段(利用序列sequence)操作过程

Posted isme-zjh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对已经存在的没有唯一标识的表添加一个自增的id字段(利用序列sequence)操作过程相关的知识,希望对你有一定的参考价值。

1、原始的数据表

技术图片

2、操作

-- 创建序列 test_data_file_Id_Seq --
create sequence Test_data_file_Id_Seq
  increment by 1
  start with
  minvalue 1
  maxvalue 999999999;


--对自己想要添加自增id的表备份一份,防止操作出错
create table test_data_file_copy as select * from test_data_file

--查看备份的表的记录数是否和以前的表一致
select count(*) from test_data_file_copy
select * from test_data_file_copy


--增加一个ID字段,为下面的将这个字段设置为自增的字段做准备,特别的需要注意的是:如果没有一个空的字段以备我们做为自增的属性,我们就需要自己先创建一个字段,如下代码:
alter table test_data_file_copy add Id int

--  设置这个表的id字段为自增序列作用的字段,
update test_data_file_copy set id = Test_data_file_Id_Seq.nextval     --Test_data_file_Id_Seq.nextval  这个的含义:


--插入数据进行测试,看自增id是否发挥作用

insert into test_data_file_copy values(‘shijiazhuang‘,‘后付费‘,‘huawei9999‘,‘华为‘,20,666,11,‘238.3800000000‘,‘GSM‘,‘是‘,‘是‘,‘是‘,‘是‘,‘是‘,666,7,-1,-1,66,0,66.66,0.66,0.66,Test_data_file_Id_Seq.nextval)

可以通过rownum进行 查询最后的一行数据,已经成功的发挥作用啦

以上是关于对已经存在的没有唯一标识的表添加一个自增的id字段(利用序列sequence)操作过程的主要内容,如果未能解决你的问题,请参考以下文章

查询当前库中包含某个字段并且包含自增的表

一个糟糕的表设计

sql server建表时怎么设置ID字段自增

求教在sqlserver2008中的表中怎么添加一列自增的列?

mysql一个表id不是自增的,而且已经有数据了,现在想将id设为自增的sql语句:

sql2005中设置字段属性时,如何设标识列(自增1)和必须唯一