Dampak savepoint pada tingkat isolasi
Sekarang setelah Anda mempelajari savepoint, mari kita gunakan untuk menyiapkan serangkaian transaksi yang semuanya perlu bekerja dari cuplikan awal data yang sama. REPEATABLE READ adalah tingkat isolasi yang memungkinkan kita memberikan setiap pernyataan di dalam transaksi data yang sama seperti yang digunakan pernyataan pertama, alih-alih data hasil dari pernyataan sebelumnya.
Baru-baru ini, FFEIC memperbolehkan pengurangan progresif untuk simpanan luar negeri, kolom RCON2203 dalam ribuan, di himpunan data. Pengurangan baru adalah 35% untuk lebih dari $1 miliar, 25% untuk lebih dari $500 juta, dan 13% untuk lebih dari $300 juta. Memang memungkinkan untuk mengurutkan pernyataan-pernyataan ini agar tidak mengurangi data lebih dari sekali. Namun, dengan REPEATABLE READ, setiap pernyataan akan melihat data sebelum penyesuaian apa pun.
Latihan ini adalah bagian dari kursus
Transaksi dan Penanganan Error di PostgreSQL
Petunjuk latihan
- Mulai transaksi
REPEATABLE READ. - Kurangi
RCON2203sebesar 35% jika lebih dari $1 miliar, sebesar 25% jika lebih dari $500 juta, atau sebesar 13% jika lebih dari $300 juta denganSAVEPOINTsetelah tiap langkah. - Tutup transaksi.
- Jumlahkan kolom
RCON2203.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
-- Create a new transaction with a repeatable read isolation level
___ TRANSACTION ISOLATION LEVEL ___ ___;
-- Update records with a 35% reduction if greater than 1000000000
UPDATE ffiec_reci
SET ___ = CAST(___ AS FLOAT) * .65
WHERE CAST(RCON2203 AS FLOAT) > 1000000000;
___ million;
-- Update records with a 25% reduction if greater than 500000000
UPDATE ___
___ ___ = CAST(___ AS FLOAT) * .75
___ CAST(RCON2203 AS FLOAT) ___ 500000000;
SAVEPOINT five_hundred;
-- Update records with a 13% reduction if greater than 300000000
___ ffiec_reci
___ ___ = CAST(___ AS FLOAT) * .87
___ CAST(___ AS FLOAT) ___ 300000000;
SAVEPOINT three_hundred;
-- Commit the transaction
___;
-- Select SUM the RCON2203 field
SELECT ___(CAST(RCON2203 AS FLOAT))
FROM ffiec_reci