Re: Re: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки
От | Dmitry E. Oboukhov |
---|---|
Тема | Re: Re: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки |
Дата | |
Msg-id | 20151020093636.GD23924@vdsl.uvw.ru обсуждение исходный текст |
Ответ на | Re: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки (Andrey Asyakin <asan999@gmail.com>) |
Список | pgsql-ru-general |
> в доке по INSERT про порядок ничего нет, но с какой стати он будет отличаться > от результатов селекта? а SELECT * FROM "with_results" может отличаться в порядке? WITH "bla" AS ( SELECT .. ), "ble" AS ( SELECT .. "bla" -- тут используется "bla" и JOIN с "bla" ) INSERT .. SELECT * FROM "bla" и вот соответственно вопрос: может ли секция "ble" изменить порядок выдачи последующего SELECT из секции "bla"? если точно задачу сформулировать то получается вкратце, пишем простой биллинг-лог на входе приходит txnname и сумма sum далее табличка с логом (играем на PRIMARY KEY): id SERIAL rollback BOOLEAN NOT NULL DEFAULT FALSE sum NUMERIC(11,2) txnname TEXT прочие TIMESTAMP опускаем для краткости входим в билинг с двумя параметрами (обобщая) txnname - имя чего-то с чем связана транзакция sum - сумма билинг формирует в обычном случае такой INSERT INSERT TO "billing_log" ("rollback", "sum", "txnname") VALUES (FALSE, 10, 'заказ 342') а в случае, если по данному объекту уже была запись, то выбирает последнюю, откатывает ее и записывает новую: INSERT TO "billing_log" ("rollback", "sum", "txnname") VALUES (TRUE, -123, 'заказ 342'), (FALSE, 10, 'заказ 342') Соответственно я хочу сформировать секцию WITH, которая формирует эти (одну или две) записи, чтобы получить атомарный SQL, но возник вот этот вопрос: сохранится ли порядок записей INSERT SELECT -- . ''`. Dmitry E. Oboukhov : :’ : email: unera@debian.org jabber://UNera@uvw.ru `. `~’ GPGKey: 1024D / F8E26537 2006-11-21 `- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537
Вложения
В списке pgsql-ru-general по дате отправления: