2011-06-10 17 views
5

में लेनदेन के रूप में क्या समर्थित है, मैं यह पता लगाने की कोशिश कर रहा हूं कि पोस्टग्रेज़ लेनदेन के अंदर सुरक्षित रूप से क्या संभाल सकता है, लेकिन मुझे postgres manual में अवशेष जानकारी नहीं मिल रही है। अब तक मुझे पता चला है निम्नलिखित:पोस्टग्रेज़

  • UPDATE, INSERT और DELTE पूरी तरह से लेन-देन के अंदर का समर्थन कर रहे हैं और वापस लुढ़का जब लेनदेन
  • DROP TABLE एक सौदे के अंदर सुरक्षित रूप से संभाला नहीं है पूरा नहीं हुआ है, और साथ पूर्ववत है एक CREATE TABLE, इस प्रकार गिरा तालिका का पुनर्निर्माण करने वाला लेकिन फिर से आबाद नहीं है कि यह
  • CREATE TABLE भी नहीं सही मायने में transactionized है और बदले में एक इसी DROP TABLE
0 के साथ पूर्ववत है

क्या यह सही है? इसके अलावा मुझे ALTER TABLE और TRUNCATE के संचालन के रूप में कोई संकेत नहीं मिला। वे किस तरह से संभाले जाते हैं और वे लेनदेन के अंदर सुरक्षित हैं? क्या विभिन्न प्रकार के लेनदेन और पोस्टग्रेज़ के विभिन्न संस्करणों के बीच हैंडलिंग का कोई अंतर है?

उत्तर

4

बेस्ट मुझे पता है इन आदेशों के सभी TRUNCATE ... RESTART IDENTITY के अलावा, लेन-देन के बारे में पता कर रहे हैं रहा हूँ (और यहां तक ​​कि एक लेन-देन संबंधी since 9.1 है।)

concurrency control और transaction-related commands पर मैनुअल देखें।

6

DROP TABLE लेनदेन है। इसे पूर्ववत करने के लिए, आपको ROLLBACK जारी करने की आवश्यकता नहीं है CREATE TABLE। यह CREATE TABLE (जिसे रोलबैक का उपयोग करके पूर्ववत किया गया है) के लिए भी जाता है।

ROLLBACK लेनदेन को पूर्ववत करने का हमेशा एकमात्र सही तरीका है - जिसमें वैकल्पिक तालिका और ट्रंकेट शामिल है।

पोस्टग्रेज़ में कभी भी लेनदेन नहीं होने वाली एकमात्र चीज अनुक्रम द्वारा उत्पन्न संख्याएं हैं (क्रिएट/एल्टर/ड्रॉप सेक्वेंस स्वयं लेनदेन हालांकि हैं)।

+0

हाँ, मेरा मतलब है कि यह आंतरिक रूप से संभाला गया है ... मान लीजिए कि मैं [इस सवाल] के कुछ उत्तरों से उलझन में था (http://stackoverflow.com/questions/4692690/is-it-possible-to- रोल-बैक-मेक-टेबल-एंड-ऑल्टर-टेबल-कथन-इन-मेजर-एसक्यूएल) – LiKao

+0

@ लीकाओ: लिंक किए गए प्रश्न का उत्तर विशेष रूप से PostgreSQL के बारे में बात नहीं करता है। एक डीबीएमएस के लिए जो लेनदेन डीडीएल का समर्थन नहीं करता है, यह सच है कि एक ड्रॉप टेबल केवल क्रिएट टेबल द्वारा "लुढ़का हुआ" नहीं हो सकता है। –

संबंधित मुद्दे