> > >Is there a difference in PostgreSQL performance between these two > > >different strategies: > > > > > > > > >if(!exec("update foo set bar='blahblah' where name = 'xx'")) > > > exec("insert into foo(name, bar) values('xx','blahblah'"); or
In pg, this strategy is generally more efficient, since a pk failing insert would create a tx abort and a heap tuple. (so in pg, I would choose the insert first strategy only when the insert succeeds most of the time (say > 95%)) Note however that the above error handling is not enough, because two different sessions can still both end up trying the insert (This is true for all db systems when using this strategy). Andreas ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings