2015-08-20 3 views
1

У меня есть запрос, как этотСохраняет ли DB2 порядок данных в INSERT?

INSERT INTO A(A_UID,A_INT) SELECT NEXT VALUE FOR A_SEQUENCE, Integer FROM 
(SELECT DISTINCT X .... ORDER BY Y) ALIAS; 

вопрос ли данные в таблице A упорядочены по Y? Я не читаю всю таблицу, чтобы отсортировать ее, я каждый раз читаю первое число NID UID и для моей бизнес-логики для работы нужно сортировать по Y!

Должен ли я переделать все это? : (((

+1

Вы уже просили об этом и получили те же ответы в комментариях [здесь] (http://stackoverflow.com/questions/32124090/sort-insert-into-with-sequence-and-distinct). – bhamby

ответ

5

Данные в таблице реляционной базы данных является никогда внутренне упорядоченный
Независимо от того, как вы заполните таблицу
Вы должны всегда использовать ORDER BY когда SELECT ING, если вы ожидаете получить конкретный заказ.. из строк.

+0

Данные могут быть не такими, но он должен присвоить ему UID из последовательности, я использую этот UID для получения заказа. Вопрос в том, когда он INSERT выполняет его порядок? –

+0

@Mars, когда вы вставляете, DB2, конечно же, сохраняет заказ от SELECT. Поэтому он присваивает первому значению из последовательности значение самого низкого значения Y, второе значение последовательности - значение второго наименьшего значения и т. Д. –

+1

@Mars Нет гарантии, что он сохранит какой-либо заказ. Как СУБД решает, где хранить строку - в конце страницы, посередине, на новой странице и т. Д. Зависит от множества переменных. Если вы хотите * гарантированный * заказ, используйте 'ORDER BY'. –

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