Как вставить несколько списков в одну строку таблицы PostgreSQL

Рейтинг: 0Ответов: 1Опубликовано: 10.04.2023

Добрый день дамы и господа! Помогите пожалуйста с ситуацией разобраться. Есть несколько списков сформированных из разных запросов. Их надо вставить в другую БД в одну строку. Мне в голову не пришло ничего умнее объединить эти списки в один и вставить таким способом:

sql_reqest = '''INSERT INTO place_report (col1, clo2, ..., col58)
                            VALUES (%s, %s, ..., %s)'''

cur.execute(sql_reqest, val_list)

Но, как понимаете, когда надо заполнить 58 колонок это та еще "порнография"))) Подскажите пожалуйста более оптимальный вариант этой операции.

Ответы

▲ 0

Формирование:

values = ','.join(cur.mogrify("(%s,%s,%s)", (x, y, z)).decode('utf-8') for x, y, z in zip(list1, list2, list3))

Вставка в БД:

cur.execute("INSERT INTO mytable (column1, column2, column3) VALUES " + values) conn.commit()

Экспериментируйте.