Secara default, psycopg2 memulai transaksi untuk Anda secara otomatis, yang berarti Anda harus memerintahkannya untuk melakukan. Perhatikan bahwa commit
adalah metode connection
, bukan cursor
.
conn = psycopg2.connection('...')
cur = conn.cursor()
cur.execute("...")
conn.commit()
Maksudnya adalah Anda dapat mengelompokkan beberapa pernyataan bersama dalam satu transaksi, sehingga kueri lain tidak akan melihat perubahan setengah jadi, tetapi juga karena alasan kinerja.
Perhatikan juga bahwa Anda harus selalu menggunakan placeholder, daripada menggabungkan string bersama-sama.
Misalnya:
cur.execute("INSERT INTO im_entry.test (colname) VALUES (%s)", [p])
Jika tidak, Anda berisiko membuat serangan injeksi SQL menjadi mungkin.