2013-03-26 3 views
0

Я хочу вставить порядковый номер в новый столбец в существующую таблицу. Можете ли вы дать лучшее решение.Назначение номера последовательности для существующей таблицы

+0

Каждая таблица имеет свой Идентификатор объекта, доступный из представления 'user_tables'. Если вы хотите добавить столбец в свою таблицу, который содержит значения в последовательном порядке, используйте последовательности. Подробнее о последовательностях в Документах Oracle здесь: http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_6015.htm – Rachcha

+0

Хорошо, возможно ли вставить в один оператор. Вместо определения "имя_последовательности .nextval "для каждой строки. – user1990383

ответ

2

Вы можете добавить новый столбец, обновить его, используя ...

update my_table set my_new_column = rownum 

... а затем создать последовательность, начиная с (максимальным числом вы только что вставили плюс один), чтобы продолжить для новых строк.

+0

Большое вам спасибо ... Я получил то, что ожидал. Благодарю. – user1990383

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 новый столбец, используя последовательность:

update foo set id = foo_seq.nextval; 
+0

Спасибо ... Его работа ... – user1990383

Смежные вопросы