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

Chèn nhiều hàng bằng psycopg2

Để sử dụng phương thức thực thi, hãy đặt dữ liệu sẽ được chèn vào danh sách. Một danh sách sẽ được psycopg2 điều chỉnh thành một mảng. Sau đó, bạn giải nén mảng và ép kiểu các giá trị nếu cần

import psycopg2

insert = """
    insert into history ("timestamp")
    select value
    from unnest(%s) s(value timestamp)
    returning *
;"""

data = [('2014-04-27 14:07:30.000000',), ('2014-04-27 14:07:35.000000',)]
conn = psycopg2.connect("host=localhost4 port=5432 dbname=cpn")
cursor = conn.cursor()
cursor.execute(insert, (data,))
print cursor.fetchall()
conn.commit()
conn.close()

Không chắc liệu sự khác biệt về hiệu suất so với thực thi có đáng kể hay không. Nhưng tôi nghĩ ở trên là gọn gàng hơn. returning như tên gợi ý, mệnh đề sẽ trả về các bộ giá trị đã chèn.

BTW timestamp là một từ dành riêng và không được dùng làm tên cột.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể di chuyển trên Heroku

  2. Triển khai cập nhật ứng dụng gia tăng với chuyển đổi hàng trong Postgres

  3. Không thể xóa cơ sở dữ liệu

  4. Loại dữ liệu nào để chọn json hoặc jsonb hoặc văn bản

  5. Xuất Cơ sở dữ liệu Postgres thành tệp CSV