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