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

psycopg2 में डाली गई कई पंक्तियों की आईडी प्राप्त करना

आपको executemany . से परिणाम प्राप्त करने में सक्षम नहीं होना चाहिए :

<ब्लॉकक्वॉट>

फ़ंक्शन डेटाबेस को अद्यतन करने वाले आदेशों के लिए अधिकतर उपयोगी होता है:क्वेरी द्वारा लौटाए गए किसी भी परिणाम सेट को छोड़ दिया जाता है।

Psycopg2 डॉक्स के अनुसार।

बेहतर होगा कि आप एक insert . पर लूप करें एक लेन-देन के भीतर, या एक बहु-मूल्यवान insert... returning . का उपयोग कर , हालांकि बाद के मामले में आपको किसी अन्य इनपुट मान का उपयोग करके लौटाई गई आईडी से मिलान करने के लिए सावधान रहना चाहिए, आप यह नहीं मान सकते कि लौटाई गई आईडी का क्रम इनपुट VALUES जैसा ही है। सूची।

जब मैं आपका परीक्षण स्थानीय रूप से चलाता हूं, तो यह बस विफल हो जाता है:

>>> import psycopg2
>>> conn = psycopg2.connect("dbname=regress")
>>> curs = conn.cursor()
>>> curs.execute("create table my_table(id serial primary key, field_1 integer, field_2 integer);")
>>> data = [(0, 0), (0, 0)]
>>> curs.executemany(
...     "INSERT INTO my_table (field_1, field_2) "
...     "VALUES (%s, %s) RETURNING id;",
...     data
... )
>>> 
>>> curs.fetchall()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
psycopg2.ProgrammingError: no results to fetch

Psycopg2 2.5.1 के साथ परीक्षण किया गया।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql सुपरसुसर के रूप में "बनाया गया" के साथ डीबी नहीं बना रहा है, फिर भी त्रुटियों को आउटपुट नहीं कर रहा है

  2. PostgreSQL में पंक्ति अपडेट होने पर टाइमस्टैम्प अपडेट करें

  3. मैं हेरोकू में कॉलम प्रकार कैसे बदलूं?

  4. PostgreSQL लॉग से सर्वश्रेष्ठ कैसे प्राप्त करें

  5. PhpPgAdmin के साथ PostgreSQL डेटाबेस निर्यात करना