PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Вмъкване на множество редове с помощта на psycopg2

За да използвате метода за изпълнение, поставете данните за вмъкване в списък. Списъкът ще бъде адаптиран от psycopg2 към масив. След това разглобявате масива и прехвърляте стойностите според нуждите

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

Не съм сигурен дали разликата в производителността от executemany ще бъде значителна. Но мисля, че горното е по-изпипано. returning клауза, както подсказва името, ще върне вмъкнатите кортежи.

Между другото timestamp е запазена дума и не трябва да се използва като име на колона.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. psql:ФАТАЛНО:не можа да отвори файлова база/11951/11717:файлова система само за четене

  2. Изберете колона с малки букви с групиране по или изберете долна (колона) в Rails 4

  3. Как JSON Marshall pq.NullTime в UTC, а не в местната часова зона?

  4. MQTT клиент се абонира за PostgreSQL DB Changes

  5. Показване на последното дете в React итерация