The new upsert feature is a great addition, but in some cases is not as usable as I and seems lots of others would like it to be, take an example with circular references:
create table foo ( id serial references bar(foo_id) on delete cascade, i int ); create table bar ( foo_id integer references foo(id) on delete cascade, i int ); A insert here would be: with _foo as ( insert into foo(i) values(1) returning id ) insert into bar(foo_id,i) select id,2 from _foo; 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; -- Bj(/)rnar -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers