I allmänhet nej. Den andra transaktionen är endast infogning, så om det inte finns en unik indexkontroll eller annan trigger som behöver äga rum, kan data infogas ovillkorligt. I fallet med ett unikt index (inklusive primärnyckel) blockeras det om båda transaktionerna uppdaterar rader med samma värde, t.ex.:
-- Session 1 -- Session 2
CREATE TABLE t (x INT PRIMARY KEY);
BEGIN;
INSERT INTO t VALUES (1);
BEGIN;
INSERT INTO t VALUES (1); -- blocks here
COMMIT;
-- finally completes with duplicate key error
Saker och ting är mindre uppenbara när det gäller uppdateringar som kan påverka infogning av den andra transaktionen. Jag förstår att PostgreSQL ännu inte stöder "äkta" serialiserbarhet i det här fallet. Jag vet inte hur ofta det stöds av andra SQL-system.
Se http://www.postgresql.org/docs/current/interactive/ mvcc.html