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