Re: UPSERT/RETURNING -> ON CONFLICT SELECT?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: UPSERT/RETURNING -> ON CONFLICT SELECT?
Дата
Msg-id 19806.1468429941@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: UPSERT/RETURNING -> ON CONFLICT SELECT?  (Peter Geoghegan <pg@heroku.com>)
Список pgsql-hackers
Peter Geoghegan <pg@heroku.com> writes:
> On Wed, Jul 13, 2016 at 2:49 AM, Bjørnar Ness <bjornar.ness@gmail.com> wrote:
>> But with upsert/do nothing, this will not work as "needed".
>> 
>> Would it be possible to introduce a "ON CONFLICT SELECT" argument:
>> 
>> with _foo as (
>> insert into foo(i) values(1)
>> on conflict select returning id
>> ) insert into bar(foo_id,i)
>> select id,2 from _foo;

> I gather that the point of this pseudo SQL is to show how you might be
> able to project and select the values not successfully inserted. Can't
> you just pipeline together some CTEs instead?

What's "needed" seems a little ill-defined here, anyway.  Would the SELECT
be expected to return values from the failed-to-be-inserted row, or from
the existing conflicting row?  (Is there certain to be only one
conflicting row?  With exclusion constraints I'd think not.)
        regards, tom lane



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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: application_name in process name?
Следующее
От: Peter Geoghegan
Дата:
Сообщение: Re: rethinking dense_alloc (HashJoin) as a memory context