PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

क्या Postgres नेस्टेड या स्वायत्त लेनदेन का समर्थन करता है?

पोस्टग्रेज नेस्टेड लेनदेन का समर्थन करता है, लेकिन वे पारंपरिक एसक्यूएल से भिन्न होते हैं, जैसे नेस्टेड आंशिक बिंदुओं वाले लेनदेन।

शीर्ष स्तर पर आपके पास हमेशा अपना विशिष्ट BEGIN/COMMIT/ROLLBACK होता है , और नेस्टेड स्तरों पर आपको निम्न आदेशों का उपयोग करना होगा:

  • SAVEPOINT name - लेन-देन के लिए अद्वितीय नाम के साथ एक नया बचत बिंदु बनाता है
  • RELEASE SAVEPOINT name - सेवपॉइंट करता है, हालांकि यह केवल तभी जारी रहेगा जब युक्त लेनदेन करता है
  • ROLLBACK TO SAVEPOINT name - सेवपॉइंट वापस रोल करता है

आपको यह भी सुनिश्चित करना होगा कि:

  • प्रत्येक SAVEPOINT के लिए उपयोग किए जाने वाले नाम अद्वितीय हैं;
  • एक SAVEPOINT में विफलता ऊपर की ओर शीर्ष स्तर तक प्रचारित किया जाता है।

आखिरी बिट थोड़ा मुश्किल है, जब तक कि आप ऐसी लाइब्रेरी का उपयोग नहीं करते जो आपके लिए स्वचालित रूप से ऐसा कर सके।

जब मैंने पीजी-वादा लिखा, तो मैंने सुनिश्चित किया कि उन दो प्रावधानों की गारंटी है:

  • यह level_1 . के रूप में स्वचालित रूप से सेव-पॉइंट नाम जेनरेट करता है , level_2 , और इसी तरह, लेन-देन के स्तर के आधार पर;
  • यह निष्पादित करता है जिसमें ROLLBACK TO SAVEPOINT name . होता है , साथ ही शीर्ष-स्तरीय ROLLBACK यदि कोई बच्चा लेन-देन विफल हो जाता है - सभी मानक वादा-श्रृंखला तर्क पर निर्मित होते हैं।

पोस्टग्रेएसक्यूएल नेस्टेड लेनदेन की सीमाएं भी देखें...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DBeaver के माध्यम से PostgreSQL डेटाबेस का बैकअप और पुनर्स्थापना कैसे करें

  2. postgresql डेटाबेस स्वामी डेटाबेस तक नहीं पहुंच सकता - कोई संबंध नहीं मिला।

  3. कैसे Statement_timestamp () PostgreSQL में काम करता है

  4. पोस्टग्रेएसक्यूएल सम्मेलन यूरोप 2018 में मैंने सीखी पांच अच्छी बातें

  5. PostgreSQL में किसी तालिका की पंक्ति गणना खोजने का तेज़ तरीका