SQL-sætninger er atomare. Det vil sige, hvis du udfører noget som dette:
UPDATE Cars SET Sold = Sold + 1
Ingen kan ændre
Problemet opstår, hvis du har udsagn, der afhænger af hinanden:
a = SELECT Sold FROM Cars;
UPDATE Cars SET Sold = a + 1;
Mellem disse forespørgsler kan en anden bruger ændre tabellen Biler og opdatere Solgt. For at forhindre dette skal du pakke det ind i en transaktion:
BEGIN;
a = SELECT Sold FROM Cars;
UPDATE Cars SET Sold = a + 1;
COMMIT;
Transaktioner understøttes af InnoDB, men ikke af MyISAM.