Svaret är utlösare är inte säkra .
Det visar sig att utlösaren verkligen inte ser oengagerade ändringar som görs i andra transaktioner och går igenom utan fel. Det kan demonstreras så här
Transaktion 1:
START TRANSACTION;
INSERT INTO plays_in (BetID, PlayerID) VALUES (1,1); -- query A
Transaktion 2:
START TRANSACTION;
INSERT INTO plays_in (BetID, PlayerID) VALUES (1,2); -- query B; in conflict with A, but passses
Båda transaktionerna:
COMMIT;
Nu plays_in
testamente innehåller båda infogade poster även om om A och B kördes i en enda transaktion, skulle utlösaren skapa ett fel.
Hela exempelkällorna kan hämtas här