PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

cursor.execute(INSERT INTO im_entry.test (+entrym+) VALUES ('+p+');)

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.




  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 ERROR:fungsi to_tsvector (karakter bervariasi, tidak diketahui) tidak ada

  2. Postgres/JSON - perbarui semua elemen array

  3. Cara Meningkatkan PostgreSQL10 ke PostgreSQL11 Dengan Tanpa Waktu Henti

  4. Log Arsip Terkompresi PostgreSQL di Windows

  5. pgDash Alternatives - Pemantauan Database PostgreSQL dengan ClusterControl