Généralement, non. La deuxième transaction est l'insertion uniquement, donc à moins qu'une vérification d'index unique ou un autre déclencheur ne doive avoir lieu, les données peuvent être insérées sans condition. Dans le cas d'un index unique (y compris la clé primaire), il se bloquera si les deux transactions mettent à jour des lignes avec la même valeur, par exemple :
-- 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
Les choses sont moins évidentes dans le cas des mises à jour qui peuvent affecter les insertions par l'autre transaction. Je comprends que PostgreSQL ne prend pas encore en charge la "vraie" sérialisabilité dans ce cas. Je ne sais pas dans quelle mesure il est couramment pris en charge par d'autres systèmes SQL.
Voir http://www.postgresql.org/docs/current/interactive/ mvcc.html