Aby skorzystać z metody execute, umieść dane do wstawienia na liście. Lista zostanie zaadaptowana przez psycopg2 do tablicy. Następnie rozpakowujesz tablicę i w razie potrzeby rzutujesz wartości
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()
Nie jestem pewien, czy różnica w wydajności od executemany będzie znacząca. Ale myślę, że powyższe jest ładniejsze. returning
klauzula, jak sama nazwa wskazuje, zwróci wstawione krotki.
BTW timestamp
jest słowem zastrzeżonym i nie powinno być używane jako nazwa kolumny.