为现有表分配序号

时间:2013-03-26 09:45:11

标签: oracle oracle11g

我想将序列号作为新列插入现有表中。你能提供更好的解决方案吗?

2 个答案:

答案 0 :(得分:2)

您可以添加新列,使用...

进行更新
 update my_table set my_new_column = rownum

...然后创建一个以(刚插入的最大数量加一个)开头的序列继续新行。

答案 1 :(得分:0)

样本表:

create table foo (some_data varchar(20));
insert into foo (some_data) values ('foo');
insert into foo (some_data) values ('bar');
insert into foo (some_data) values ('foobar');
insert into foo (some_data) values ('barfoo');
commit;

添加新列:

alter table foo add (id integer);

现在创建一个新序列来填充id列:

create sequence foo_seq;

使用序列更新新列:

update foo set id = foo_seq.nextval;