[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 по дате отправления: