Cegah phantom read hanya pada beberapa baris
Anda perlu menganalisis beberapa data tentang nasabah bank dengan customer_id antara 1 dan 10. Anda hanya ingin mengunci baris pada tabel customers dengan customer_id antara 1 dan 10. Dengan melakukan ini, Anda menjamin tidak ada yang dapat mengubah baris-baris tersebut, dan Anda mengizinkan transaksi lain bekerja dengan sisa tabel.
Anda perlu memilih para nasabah tersebut dan menjalankan beberapa operasi matematika lagi. (Kita juga tidak akan berfokus pada operasi-operasi ini dalam latihan ini.) Setelah itu, Anda ingin memilih kembali nasabah dengan customer_id antara 1 dan 10 untuk memastikan tidak ada yang berubah.
Bagaimana Anda dapat menyiapkan skripnya?
Latihan ini adalah bagian dari kursus
Transaksi dan Penanganan Kesalahan di SQL Server
Petunjuk latihan
- Tetapkan tingkat isolasi yang sesuai untuk mencegah phantom read.
- Mulai sebuah transaksi.
- Pilih nasabah yang ingin Anda kunci.
- Commit transaksi tersebut.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
-- Set the appropriate isolation level
___ ___ ___ ___ ___
-- Begin a transaction
___ ___
-- Select customer_id between 1 and 10
SELECT *
FROM customers
___ customer_id ___ ___ AND ___;
-- After completing some mathematical operation, select customer_id between 1 and 10
SELECT *
FROM customers
___ customer_id ___ ___ AND ___;
-- Commit the transaction
___ ___