sql >> Databáze >  >> RDS >> PostgreSQL

Vložení více řádků pomocí psycopg2

Chcete-li použít metodu provádění, umístěte data, která mají být vložena, do seznamu. Seznam přizpůsobí psycopg2 poli. Poté pole zrušíte a přetypujete hodnoty podle potřeby

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()

Nejste si jisti, zda bude rozdíl ve výkonu od spouštění významný. Ale myslím, že výše uvedené je lepší. returning klauzule vrátí, jak název napovídá, vložené n-tice.

BTW timestamp je vyhrazené slovo a nemělo by se používat jako název sloupce.




  1. Volání uložené procedury s parametrem Out pomocí PDO

  2. Jak získat velikost blob v PHP nebo SQL

  3. Optimalizátor v databázi Oracle 19c

  4. Jak se vyhnout hodnotám 0 pomocí funkce MIN a MAX v SQL?