পোস্টগ্রাইএসকিউএল সাব-লেনদেন সমর্থন করে না, তবে SAVEPOINT
বৈশিষ্ট্যটি আপনার প্রয়োজনের কার্যকরভাবে উত্তর দিতে পারে। জন্য নথিপত্র থেকে বরাত দিয়ে প্রতিশ্রুতি মাধ্যমে পিজি করতে উন্নত এক্সেস স্তর দ্বারা ভিতালি Tomilov GitHub থেকে:
পোস্টগ্রিএসকিউএল-এর নেস্টেড লেনদেনের জন্য যথাযথ সমর্থন নেই, এটি কেবল লেনদেনের ভিতরে সেভপয়েন্টগুলির মাধ্যমে আংশিক রোলব্যাকগুলি সমর্থন করে । দুটি কৌশল মধ্যে পার্থক্য বিশাল, আরও ব্যাখ্যা হিসাবে।
নেস্টেড লেনদেনের জন্য যথাযথ সমর্থন মানে হ'ল একটি সফল সাব-লেনদেনের ফলাফল যখন তার পিতামাতার লেনদেনটি আবার ঘুরিয়ে দেয় তখন ফিরে আসে না। তবে PostgreSQL সেভ পয়েন্টগুলির সাথে, আপনি যদি শীর্ষ-স্তরের লেনদেনটি রোল-ব্যাক করেন তবে সমস্ত অভ্যন্তরীণ সেভ পয়েন্টগুলির ফলাফলটিও আবার ফিরে আসে।
একটি সক্রিয় লেনদেনের ভিতরে পূর্বের পয়েন্টে আংশিক রোলব্যাকগুলির জন্য সেভপয়েন্টগুলি ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, একটি সেভপয়েন্ট স্থাপন করতে এবং পরে এটি প্রতিষ্ঠিত হওয়ার পরে কার্যকর হওয়া সমস্ত কমান্ডের প্রভাবগুলি পূর্বাবস্থায় ফিরিয়ে আনতে:
BEGIN;
INSERT INTO table1 VALUES (1);
SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (2);
ROLLBACK TO SAVEPOINT my_savepoint;
INSERT INTO table1 VALUES (3);
COMMIT;
উপরের লেনদেনটি 1 এবং 3 এর মান সন্নিবেশ করবে তবে 2 নয় SAVEPOINT
more আরও তথ্যের জন্য ডকুমেন্টেশন দেখুন ।