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

PHP:पीजीएसक्यूएल ड्राइवर और ऑटोकॉमिट?

सबसे पहले, PostgreSQL में कोई AutoCommit मोड नहीं है और PHP API के pg_* फ़ंक्शन किसी एक का अनुकरण करने का प्रयास नहीं करते हैं।

pg_query's doc कहते हैं

तो यह गारंटी देता है कि pg_query("UPDATE1 ..; UPDATE2...") एक लेन-देन में निष्पादित होता है और डेटा पर सभी या कुछ भी प्रभाव नहीं डालता है।

क्रम

pg_query("BEGIN");
pg_query("UPDATE1...");
pg_query("UPDATE2..");
pg_query("COMMIT");

pg_query("UPDATE1 ..; UPDATE2...") के बराबर है डेटा अखंडता के संबंध में (अर्ध-अधूरी स्थिति नहीं हो सकती)।

नोट के लिए "जब तक कि स्पष्ट BEGIN/COMMIT..." न हो, यह तभी प्रासंगिक है जब ये SQL कथनों की पूरी श्रृंखला की शुरुआत और अंत में न हों। वह है, pg_query("BEGIN; update1; update2; COMMIT;"); pg_query("update1; update2;") . के बराबर है लेकिन (जाहिर है) pg_query("update1; COMMIT; update2;") के बराबर नहीं है




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेएसक्यूएल:नॉट इन बनाम एक्सेप्ट परफॉर्मेंस अंतर (संपादित # 2)

  2. क्या Django में कर्सर खुले लेनदेन के अंदर चलते हैं?

  3. डेटाबेस के बिना PostgreSQL उपयोगकर्ता और पासवर्ड को प्रमाणित करें

  4. पंक्ति कक्षों को नए स्तंभों के रूप में चुनें

  5. प्रत्येक समूह में शीर्ष तीन मान चुनें