Savepoint का isolation levels पर प्रभाव
अब जब आप savepoints देख चुके हैं, तो आइए उन्हें उपयोग करके ऐसे transactions की एक श्रृंखला तैयार करें जिन सभी को डेटा के एक ही प्रारंभिक snapshot से काम करना है. REPEATABLE READ एक isolation level है जो transaction के अंदर हर statement को वही डेटा देता है जिस पर पहले statement ने काम किया था, न कि पिछले statement(s) के परिणामस्वरूप बदला हुआ डेटा.
हाल ही में, FFEIC ने dataset में foreign deposits (फ़ील्ड RCON2203, हजारों में) पर चरणबद्ध कटौती की अनुमति दी है. नई कटौती यह है: $1 billion से अधिक पर 35%, $500 million से अधिक पर 25%, और $300 million से अधिक पर 13%. इन statements को ऐसे क्रम में रखा जा सकता है कि डेटा पर एक से अधिक बार कटौती न हो. हालाँकि, REPEATABLE READ के साथ statements के पास समायोजन से पहले वाला ही डेटा रहता है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
PostgreSQL में Transactions और Error Handling
अभ्यास निर्देश
- एक
REPEATABLE READtransaction शुरू करें. - अगर $1 billion से अधिक हो तो
RCON2203को 35% घटाएँ, $500 million से अधिक हो तो 25%, या $300 million से अधिक हो तो 13% — और हर एक के बादSAVEPOINTरखें. - transaction बंद करें.
RCON2203फ़ील्ड का कुल निकालें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
-- 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