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

SQL को BEGIN से डेटा मिलता है; ...; समाप्त; पायथन में ब्लॉक करें

Postgresql वास्तव में एक ही कमांड से कई परिणाम सेट वापस करने का समर्थन नहीं करता है। अगर आप इस इनपुट को psql में पास करते हैं:

BEGIN;
SELECT ...;
END;

यह क्लाइंट-साइड को विभाजित कर देगा और वास्तव में तीन कथन निष्पादित करेगा, जिनमें से केवल दूसरा परिणाम सेट देता है।

"BEGIN" और "END" लेन-देन शुरू/समाप्त करने के लिए SQL-स्तरीय कमांड हैं। (ऐसा करने के लिए निचले स्तर का प्रोटोकॉल हो सकता है लेकिन मुझे याद नहीं है)। आप शायद उन्हें सीधे जारी नहीं करना चाहते हैं, बल्कि अपने ड्राइवर (psycopg2) को इसे संभालना चाहते हैं। उदाहरण के लिए, पर्ल के डीबीआई के साथ कनेक्ट करते समय मैं AutoCommit => 0 निर्दिष्ट करता हूं और यह मेरे पहले आदेश से पहले "BEGIN" को स्पष्ट रूप से जारी करता है; और फिर "END" (या "COMMIT" आदि) जब मैं स्पष्ट रूप से $dbh->commit; मुझे लगता है कि पाइथन का डीबी-एपीआई इस तरह काम करता है, क्योंकि जेडीबीसी जैसे अन्य सिस्टम भी करते हैं...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. हरोकू पर समसामयिक पोस्टग्रेज त्रुटि:होस्ट नाम <pg URL> को पते पर अनुवाद नहीं कर सका:नाम या सेवा ज्ञात नहीं है (PG::Error)

  2. बहुस्तंभ तुलना के लिए सूचकांक स्कैन - गैर-वर्दी सूचकांक स्तंभ क्रम

  3. PostgreSQL में एक महीने में दिनों की संख्या प्राप्त करें

  4. त्रुटि:सबक्वेरी को केवल एक कॉलम वापस करना होगा

  5. pgSql के साथ समान कॉलम की पिछली पंक्ति को कैसे क्वेरी करें