Isolation levels और transactions
SERIALIZABLE एक isolation level है जो पहली query या update स्टेटमेंट जारी होने पर रिकॉर्ड का स्नैपशॉट लेता है, और यदि ट्रांज़ैक्शन के बाहर डेटा किसी भी तरह बदला जाए तो error देता है. ध्यान दें कि पहली query से पहले ट्रांज़ैक्शन अन्य काम कर सकता है, जैसे कि वैरिएबल डिक्लेयर करना.
आप FFIEC डेटासेट का फिर से उपयोग करेंगे ताकि उस डेटा पर काम कर सकें जहाँ बचत जमा RCON0352 में वार्षिक बदलाव पर बड़े offset का असर पड़ता है.
यह अभ्यास पाठ्यक्रम का हिस्सा है
PostgreSQL में Transactions और Error Handling
अभ्यास निर्देश
SERIALIZABLEमोड में एक ट्रांज़ैक्शन शुरू करें.- जिन सभी रिकॉर्ड्स में
RCON0352100,000 से अधिक है, उन्हें 50% की कमी के साथ अपडेट करें. - ट्रांज़ैक्शन को
COMMITकरें. - अब भी जिन रिकॉर्ड्स का
RCON0352100,000 से अधिक है, उनकी count सेलेक्ट करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
-- Create a new transaction with a serializiable isolation level
___ TRANSACTION ISOLATION LEVEL ___;
-- Update records with a 50% reduction if greater than 100000
___ ffiec_reci
SET ___ = ___ * 0.5
WHERE RCON0352 > 100000;
-- Commit the transaction
___;
-- Select a count of records still over 100000
SELECT ___(RCON0352)
FROM ___
WHERE RCON0352 > 100000;