Para usar el método de ejecución, coloque los datos que se insertarán en una lista. psycopg2 adaptará una lista a una matriz. Luego, desanimes la matriz y emitas los valores según sea necesario
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()
No estoy seguro de si la diferencia de rendimiento con respecto a executemany será significativa. Pero creo que lo anterior es más ordenado. El returning
la cláusula devolverá, como sugiere el nombre, las tuplas insertadas.
Por cierto timestamp
es una palabra reservada y no debe usarse como nombre de columna.