Как вставить несколько списков в одну строку таблицы PostgreSQL
Добрый день дамы и господа! Помогите пожалуйста с ситуацией разобраться. Есть несколько списков сформированных из разных запросов. Их надо вставить в другую БД в одну строку. Мне в голову не пришло ничего умнее объединить эти списки в один и вставить таким способом:
sql_reqest = '''INSERT INTO place_report (col1, clo2, ..., col58)
VALUES (%s, %s, ..., %s)'''
cur.execute(sql_reqest, val_list)
Но, как понимаете, когда надо заполнить 58 колонок это та еще "порнография"))) Подскажите пожалуйста более оптимальный вариант этой операции.
Ответы (1 шт):
Автор решения: 69 420 1970
→ Ссылка
Формирование:
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()
Экспериментируйте.