Odpověď zní spouštěče nejsou bezpečné .
Ukazuje se, že spouštěč skutečně nevidí neprovedené změny provedené v jiných transakcích a projde bez chyby. Lze to demonstrovat takto
Transakce 1:
START TRANSACTION;
INSERT INTO plays_in (BetID, PlayerID) VALUES (1,1); -- query A
Transakce 2:
START TRANSACTION;
INSERT INTO plays_in (BetID, PlayerID) VALUES (1,2); -- query B; in conflict with A, but passses
Obě transakce:
COMMIT;
Nyní plays_in
will obsahuje oba vložené záznamy, i když pokud by byly A a B provedeny v jedné transakci, spouštěč by vyvolal chybu.
Celé příklady zdrojů lze stáhnout zde