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] порядок вставки Иван Фролков <ifrol2001@mail.ru>
Re: Re: [pgsql-ru-general] порядок вставки "Dmitry E. Oboukhov" <unera@debian.org>
Re[2]: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки Иван Фролков <ifrol2001@mail.ru>
Re[2]: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки Иван Фролков <ifrol2001@mail.ru>
Re: Re[2]: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки "Dmitry E. Oboukhov" <unera@debian.org>
Re[2]: [pgsql-ru-general] Re[2]: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки Иван Фролков <ifrol2001@mail.ru>
Re: Re[2]: [pgsql-ru-general] Re[2]: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки "Dmitry E. Oboukhov" <unera@debian.org>
Re: [pgsql-ru-general] Re[2]: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки Андрей Зевакин <azevakin@gmail.com>
Re: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки Andrey Asyakin <asan999@gmail.com>
Re: Re: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки "Dmitry E. Oboukhov" <unera@debian.org>
> в доке по 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 по дате отправления
От: Андрей Зевакин
Дата:
От: Dmitry E. Oboukhov
Дата:
FAQ