Materi
Isolasi menentukan kapan perubahan satu transaksi terlihat oleh transaksi lain. Dokumentasi PostgreSQL merangkum fenomena yang dipakai standar SQL untuk mendefinisikan level isolasi. Dirty read: transaksi membaca data yang ditulis transaksi lain yang belum di-commit. Non-repeatable read: transaksi membaca ulang data dan mendapati data itu sudah diubah transaksi lain yang commit di antaranya. Phantom read: transaksi menjalankan ulang kueri bersyarat dan himpunan baris yang cocok sudah berubah karena transaksi lain yang baru commit.
Tabel di dokumentasi itu menggambarkan PostgreSQL: level bawaannya Read Committed, di mana dua SELECT dalam satu transaksi bisa melihat data berbeda; Repeatable Read melihat satu snapshot sejak awal transaksi. Tabel itu bukan pengaturan SQLite. Halaman isolasi SQLite menyatakan bahwa koneksi terpisah tidak pernah melihat perubahan yang belum di-commit (kecuali shared cache dengan read_uncommitted), dan semua transaksinya serializable karena penulisan benar-benar diserialkan. Di mode WAL, pembaca melihat snapshot sejak transaksi bacanya dimulai. Di dalam satu koneksi tidak ada isolasi: SELECT melihat perubahan koneksi itu sendiri yang belum di-commit.
Akibat praktisnya: dua SELECT terpisah di mode autocommit adalah dua transaksi. Laporan yang mengambil jumlah baris dan total dari dua pernyataan bisa menggabungkan dua keadaan berbeda. Ambil keduanya dalam satu pernyataan, atau buka BEGIN sebelum SELECT pertama dan tutup sesudah yang terakhir.