create table source_table (id number);
insert into source_table values(3);
insert into source_table values(1);
insert into source_table values(2);
create table target_table (id number, seq_val number);
create sequence example_sequence;
insert into target_table
select id, example_sequence.nextval
from
> (select id from source_table ***order by id***);
Официально гарантируется, что для идентификаторов с более низкими значениями в source_table значение соответствующей последовательности также будет ниже при вставке в source_table? Другими словами, гарантируется ли, что сортировка, обеспеченная порядком по предложению , будет сохранена при вставке?
EDIT
Вопрос не в том, «упорядочены ли строки в таблице как таковой?». а скорее: «Можем ли мы положиться на предложение order by , используемое в подзапросе при вставке?».
Чтобы еще точнее проиллюстрировать это, содержимое target table
в приведенном выше примере после выполнения запроса, подобного select * from target_table order by id
, будет:
ID | SEQ_VAL
1 1
2 2
3 3
Более того, если я указал порядок убывания при вставке следующим образом:
insert into target_table
select id, example_sequence.nextval
from
> (select id from source_table ***order by id DESC***);
Вывод того же запроса сверху будет:
ID | SEQ_VAL
1 3
2 2
3 1
В этом я уверен, я проверял это несколько раз. У меня вопрос «Могу ли я всегда полагаться на этот заказ?»