डिफ़ॉल्ट रूप से, psycopg2 आपके लिए स्वचालित रूप से लेनदेन शुरू करता है, जिसका अर्थ है कि आपको इसे प्रतिबद्ध करने के लिए कहना होगा। ध्यान दें कि commit
connection
. की एक विधि है , नहीं cursor
।
conn = psycopg2.connection('...')
cur = conn.cursor()
cur.execute("...")
conn.commit()
आशय यह है कि आप एक ही लेन-देन में कई कथनों को एक साथ समूहित कर सकते हैं, इसलिए अन्य प्रश्नों में आधे-अधूरे परिवर्तन नहीं, बल्कि प्रदर्शन कारणों से भी दिखाई देंगे।
यह भी ध्यान रखें कि स्ट्रिंग्स को एक साथ जोड़ने के बजाय आपको हमेशा प्लेसहोल्डर का उपयोग करना चाहिए।
उदा.:
cur.execute("INSERT INTO im_entry.test (colname) VALUES (%s)", [p])
अन्यथा आप SQL इंजेक्शन हमलों को संभव बनाने का जोखिम उठाते हैं।