However, that doesn't cover the case where you want to update the record if it already exists.
Jon > insert into test (a, b, c, d) > (select 1, 2, 3, 4 where not exists > (select 1 from test where a=1 and b=2 and c=3 and d=4) > ); > > If your table contains a=1, b=2, c=3, and d=4, nothing will happen, and > there will be no failed transaction. If your table does not contain a=1, > b=2, c=3, and d=4, you'll get an insert of a row containing 1, 2, 3, 4. > > ---------------------------(end of broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://archives.postgresql.org > ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faqs/FAQ.html