Per utilizzare il metodo di esecuzione inserire i dati da inserire in un elenco. Un elenco verrà adattato da psycopg2 a un array. Quindi annulli l'annidamento dell'array e trasmetti i valori secondo necessità
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()
Non sono sicuro se la differenza di prestazioni rispetto a executemany sarà significativa. Ma penso che quanto sopra sia più ordinato. Il returning
La clausola, come suggerisce il nome, restituirà le tuple inserite.
A proposito timestamp
è una parola riservata e non deve essere utilizzata come nome di colonna.