Pernyataan SQL bersifat atomik. Artinya, jika Anda menjalankan sesuatu seperti ini:
UPDATE Cars SET Sold = Sold + 1
Tidak ada yang bisa mengubah Sold
variabel selama pernyataan ini. Itu selalu bertambah 1, bahkan jika orang lain mengeksekusi pernyataan yang sama secara bersamaan.
Masalah terjadi jika Anda memiliki pernyataan yang saling bergantung:
a = SELECT Sold FROM Cars;
UPDATE Cars SET Sold = a + 1;
Di antara kueri ini, pengguna lain dapat mengubah tabel Mobil dan memperbarui Terjual. Untuk mencegah hal ini, bungkus dalam transaksi:
BEGIN;
a = SELECT Sold FROM Cars;
UPDATE Cars SET Sold = a + 1;
COMMIT;
Transaksi didukung oleh InnoDB, tetapi tidak didukung oleh MyISAM.