[pgsql-ru-general] INSERT ON CONFLICT RETURNING

Поиск
Список
Период
Сортировка
От Д.П.
Тема [pgsql-ru-general] INSERT ON CONFLICT RETURNING
Дата
Msg-id 6d849576-34ea-797b-73ea-18a1a939e1d3@yandex.ru
обсуждение исходный текст
Ответы Re: [pgsql-ru-general] INSERT ON CONFLICT RETURNING
Re: [pgsql-ru-general] INSERT ON CONFLICT RETURNING
Список pgsql-ru-general
И снова здравствуйте.

Как бы мне извернуться, и узнать какое-нибудь поле из конфликтной 
записи, которого не было во вставке?
То есть, грубо говоря
я вставляю новую запись в таблицу
# \d requests                                      Таблица "public.requests"    Столбец    |             Тип
|                    Модификаторы
 
---------------+-----------------------------+------------------------------------------------------- id            |
bigint                     | NOT NULL DEFAULT 
 
nextval('requests_id_seq'::regclass) middleware_id | character varying(1024)     |

Индексы:    "requests_pkey" PRIMARY KEY, btree (id)    "requests_middleware_id_index" UNIQUE, btree (middleware_id)

И вот такой командой оно мне, в случае конфликта middleware_id 
возвращает ровно ничего.
> insert into requests ( middleware_id ) values (1) on conflict do 
nothing returning id;
 id
----
(0 строк)

INSERT 0 0

А я хочу id записи, или все поля записи.

Или это невозможно и надо проверять результат и потом SELECT?

В общем если добавить какое-то поле типа access_counter и ON CONFLICT DO 
UPDATE SET access_counter = access_counter + 1
то, конечно, id вернётся, но планируется неплохая нагрузка на эту 
таблицу и не хочется добавлять.

//ДП



-- 
Sent via pgsql-ru-general mailing list (pgsql-ru-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-ru-general

В списке pgsql-ru-general по дате отправления:

Предыдущее
От: "Dmitry E. Oboukhov"
Дата:
Сообщение: [pgsql-ru-general] Re: SPAM (6.4) [pgsql-ru-general] Re: [pgsql-ru-general] Re: [pgsql-ru-general] Темпоральные данные в PostgreSQL
Следующее
От: Михаил
Дата:
Сообщение: Re: [pgsql-ru-general] INSERT ON CONFLICT RETURNING