Postgres में, आप लेन-देन . के साथ बहुत कुछ कर सकते हैं जो रोल बैक . हैं अंत में:
BEGIN;
UPDATE foo ...:
INSERT bar ...;
SELECT baz FROM ...;
CREATE TABLE abc...; -- even works for DDL statements
DROP TABLE def...;
ALTER TABLE ghi ...:
ROLLBACK; -- !
मैनुअल में अधिक:BEGIN
ROLLBACK
ध्यान रखें कि कुछ चीजें वापस नहीं ली जा सकतीं, हालांकि। उदाहरणों के लिए अनुक्रम वापस रोल नहीं करते हैं। या कुछ विशेष कमांड जैसे dblink कॉल।
और कुछ कमांड दूसरों के साथ लेन-देन में नहीं चलाए जा सकते। जैसे CREATE DATABASE
या VACUUM
.
साथ ही, समवर्ती भार के साथ गतिरोध जैसे दुष्प्रभाव भी हो सकते हैं। हालांकि, संभावना नहीं है। आप लेन-देन अलगाव स्तर सेट कर सकते हैं किसी भी दुष्प्रभाव से बचने के लिए आपकी आवश्यकताओं के अनुसार (प्रदर्शन के लिए कुछ कीमत पर)।
मैं समझदार डेटा के साथ ऐसा नहीं करूंगा। दुर्घटना से होने का जोखिम बहुत अधिक है। और उपयोगकर्ताओं को मनमाना कोड निष्पादित करने देना एक जोखिम है जो शायद ही संभव हो। लेकिन प्रशिक्षण के माहौल के लिए, यह काफी अच्छा होना चाहिए।
टेम्पलेट डेटाबेस के साथ इसका बैकअप लें . अगर कुछ गलत हो जाता है, तो मूल स्थिति को बहाल करने का यह सबसे तेज़ तरीका है। उदाहरण (अंतिम अध्याय देखें):
पोस्टग्रेज डेटाबेस में सभी तालिकाओं को छोटा करना
इसका उपयोग पाशविक बल के रूप में भी किया जा सकता है वैकल्पिक :प्रत्येक प्रशिक्षु के लिए एक नया डेटाबेस प्रदान करने के लिए।