2013-03-26 48 views
0

我想將序列號作爲新列插入現有表中。你能否提供更好的解決方案?爲現有表分配序列號

+0

每個表都有自己的對象ID,可以從'user_tables'視圖訪問。如果您想按順序將一列添加到包含值的列表中,請使用序列。在這裏閱讀更多關於Oracle Docs序列的知識:http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_6015.htm – Rachcha 2013-03-26 09:51:08

+0

好吧,是否可以在一個語句中插入..而不是定義「sequence_name .nextval「爲每一行。 – user1990383 2013-03-26 09:54:46

回答

2

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

update my_table set my_new_column = rownum 

...,然後創建(您剛插入的最大數加一)起,繼續對新行的序列。

+0

非常感謝你......我得到了我所期望的。謝謝。 – user1990383 2013-03-26 10:31:39

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; 
+0

謝謝......它的工作...... – user1990383 2013-03-26 11:09:45