Jaime, > why? seems that REPLACE only work if there are at least one row > matching...
Scenario: session1: REPLACE .... 1 session2: REPLACE ..... 1 session1: check to see that "1" exists .... no session2: check to see that "1" exists .... no session1: INSERT 1 session2: INSERT 1 .... ERROR Get the picture? The only way to avoid a race condition is to be able to do "predicate locking", that is to lock the table against any data write matching that predicate. -- --Josh Josh Berkus Aglio Database Solutions San Francisco ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq