MyTetra Share
Делитесь знаниями!
Вставить несколько строк одним запросов в psycopg2
Время создания: 10.12.2019 18:26
Автор: br0ke
Текстовые метки: python, psycopg, psycopg2, postgre, postgres, postgresql, insert, many, bulk, batch, create, execute_values
Раздел: Информационные технологии - Python - Библиотеки - psycopg2
Запись: and-semakin/mytetra_data/master/base/1575984409ox3r0xwtbe/text.html на raw.githubusercontent.com

psycopg 2.7  содержит метод execute_values:


data = [(1,'x'), (2,'y')]

insert_query = 'insert into t (a, b) values %s'

psycopg2.extras.execute_values (

cursor, insert_query, data, template=None, page_size=100

)


Для более сложных запросов, например, с RETURNING или ON CONFLICT, все равно может понадобиться напрямую составлять запрос:


args_str = ','.join(cur.mogrify("(%s,%s,%s,%s,%s,%s,%s,%s,%s)", x) for x in tup)

cur.execute("INSERT INTO table VALUES " + args_str)

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования