Om de execute methode te gebruiken, plaatst u de in te voegen gegevens in een lijst. Een lijst wordt door psycopg2 aangepast aan een array. Vervolgens verwijder je de array en cast je de waarden indien nodig
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()
Ik weet niet zeker of het prestatieverschil met executemany aanzienlijk zal zijn. Maar bovenstaande vind ik netter. De returning
clausule zal, zoals de naam al doet vermoeden, de ingevoegde tuples retourneren.
BTW timestamp
is een gereserveerd woord en mag niet als kolomnaam worden gebruikt.