SAVEPOINT
In this page:
SAVEPOINT savepoint_name;
ROLLBACK TO SAVEPOINT savepoint_name;
RELEASE SAVEPOINT savepoint_name;
एक SAVEPOINT क्या है?
एक SAVEPOINT एक लंबे transaction के बीच में रखे एक bookmark जैसा काम करता है, आपको बाद में उसी transaction में पहले हुई हर चीज़ discard किए बिना exactly उस point पर roll back करने देते हुए।
उदाहरण: What is a SAVEPOINT?
START TRANSACTION;
UPDATE accounts SET balance = balance - 50 WHERE id = 1;
SAVEPOINT after_withdrawal;
UPDATE accounts SET balance = balance + 50 WHERE id = 2;
एक SAVEPOINT पर Rolling Back करना
ROLLBACK TO एक specific savepoint के बाद हुई हर चीज़ undo करता है साथ ही इससे पहले किए गए changes preserve करते हुए, आपको पूरे transaction के एक all-or-nothing rollback के बजाय fine-grained control देते हुए।
उदाहरण: Rolling Back to a SAVEPOINT
START TRANSACTION;
UPDATE accounts SET balance = balance - 50 WHERE id = 1;
SAVEPOINT after_withdrawal;
UPDATE accounts SET balance = balance + 999 WHERE id = 2;
ROLLBACK TO after_withdrawal;
COMMIT;
एक SAVEPOINT Release करना
RELEASE SAVEPOINT बिना किसी data save या undo किए एक ऐसा savepoint हटाता है जिसकी अब ज़रूरत नहीं — यह बस उस particular checkpoint track करने के लिए MySQL इस्तेमाल कर रहे resources free कर देता है।
उदाहरण: Releasing a SAVEPOINT
START TRANSACTION;
UPDATE accounts SET balance = balance - 50 WHERE id = 1;
SAVEPOINT after_withdrawal;
RELEASE SAVEPOINT after_withdrawal;
COMMIT;
एक Transaction में कई SAVEPOINTs
एक single transaction में कई savepoints हो सकते हैं, जो multi-step processes के लिए उपयोगी है जहाँ आपको exactly यह ढूँढने के लिए incrementally पीछे step करना पड़ सकता है कि कहाँ कुछ गलत हुआ।
उदाहरण: Multiple SAVEPOINTs in One Transaction
START TRANSACTION;
UPDATE accounts SET balance = balance - 10 WHERE id = 1;
SAVEPOINT step1;
UPDATE accounts SET balance = balance - 20 WHERE id = 1;
SAVEPOINT step2;
ROLLBACK TO step1;
COMMIT;
SAVEPOINT Lifespan और Limits
Savepoints सिर्फ अपने transaction की lifetime तक exist करते हैं — transaction के एक COMMIT या एक पूरे ROLLBACK के साथ खत्म होते ही, इसके अंदर का हर savepoint automatically discard हो जाता है।
उदाहरण: SAVEPOINT Lifespan and Limits
START TRANSACTION;
SAVEPOINT step1;
COMMIT;
-- step1 no longer exists here -- savepoints don't survive past COMMIT/ROLLBACK
- यह उम्मीद करना कि एक savepoint पर
ROLLBACK TOtransaction खत्म कर देगा, जबकि transaction खुला रहता है और आपको अभी भीCOMMITचाहिए। - एक ऐसे savepoint पर rollback करना जो पहले से released हो चुका हो या exist न करे, जो एक error देता है।
- एक plain
ROLLBACKइस्तेमाल करना जब सिर्फ काम का एक हिस्सा undo होना चाहिए, जो सब कुछ cancel कर देता है।
Chapter Quiz — Complete all 4 topics to unlock
0/4 topics done
Complete these topics first: