PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

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

Theo mặc định, psycopg2 tự động bắt đầu các giao dịch cho bạn, có nghĩa là bạn phải yêu cầu nó cam kết. Lưu ý rằng commit là một phương thức của connection , không phải cursor .

conn = psycopg2.connection('...')
cur = conn.cursor()
cur.execute("...")
conn.commit()

Mục đích là bạn có thể nhóm nhiều câu lệnh lại với nhau trong một giao dịch, vì vậy các truy vấn khác sẽ không thấy các thay đổi được thực hiện một nửa mà còn vì lý do hiệu suất.

Cũng lưu ý rằng bạn nên luôn sử dụng trình giữ chỗ, thay vì nối các chuỗi với nhau.
Ví dụ:

cur.execute("INSERT INTO im_entry.test (colname) VALUES (%s)", [p])

Nếu không, bạn có nguy cơ thực hiện các cuộc tấn công chèn SQL.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Về hiệu suất bệnh lý

  2. Các hàng trùng lặp trong một bảng khóa chính.

  3. Tên các quy trình PostgreSQL trong Windows

  4. Khoảng thời gian động (Dựa trên cột)

  5. Chọn tất cả các bản ghi bằng cách sử dụng SQL LIMIT và truy vấn OFFSET