Để 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.