Re: Re: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки

From: "Dmitry E(dot) Oboukhov" <unera(at)debian(dot)org>
To: Andrey Asyakin <asan999(at)gmail(dot)com>
Cc: Иван Фролков <ifrol2001(at)mail(dot)ru>, pgsql-ru-general(at)postgresql(dot)org
Subject: Re: Re: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки
Date: 2015-10-20 09:36:36
Message-ID: 20151020093636.GD23924@vdsl.uvw.ru
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: 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(at)debian(dot)org jabber://UNera(at)uvw(dot)ru
`. `~’ GPGKey: 1024D / F8E26537 2006-11-21
`- 1B23 D4F8 8EC0 D902 0555 E438 AB8C 00CF F8E2 6537

In response to

Browse pgsql-ru-general by date

  From Date Subject
Next Message Dmitry E. Oboukhov 2015-10-20 09:39:30 Re: Re[2]: [pgsql-ru-general] Re[2]: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки
Previous Message Андрей Зевакин 2015-10-20 09:32:38 Re: [pgsql-ru-general] Re[2]: [pgsql-ru-general] Re: [pgsql-ru-general] порядок вставки