Задать вопрос
@QTusers

Как передать данные из различны таблиц SQlite в БД Postgres?

66d06045ea9d5179382094.png
Пытаюсь передать данные с разных таблиц одной БД SQlite. Данные с первой таблиц "dic_Monitorе" передаются, а вот данне со второй таблице "dic_memory" проблема
Ошибка
LINE 1: INSERT into dic_memory(displname, assetname) VALUES ('1 ГБ D..

Где накосячил?
# Проверка, нужно ли использовать ID для выборки данных
if 'use_id' in cfg["sqlite"] and cfg["sqlite"]['use_id']:
use_id_filter = True
pg_id_cursor = connection_destination.cursor()
pg_id_cursor.execute('select id from ' + table_name + ' order by id desc')
row = pg_id_cursor.fetchone()

if row is not None:
skip_id = row[0]
pg_id_cursor.close()

query = 'select ' + columns + ' from ' + table_name
if use_id_filter:
query += ' where id>' + str(skip_id)
query += ' order by id'

connection_source = sqlite3.connect(cfg["sqlite"]['path'])
cursor = connection_source.cursor()
cursor.execute(query)
field_names = [i[0] for i in cursor.description]
row = cursor.fetchone()
while row is not None:
pgcursor = connection_destination.cursor()
params = []
import re

params_placeholders = re.sub(r"[A-Za-z0-9_]+", "%s", columns)
for column in columns.split(', '):
params.append(row[field_names.index(column)])

pgcursor.execute(
"INSERT into " + table_name + "(" + columns + ") VALUES (" + params_placeholders + ")",
params)
row = cursor.fetchone()
connection_destination.commit()
cursor.close()
  • Вопрос задан
  • 85 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
@Everything_is_bad
Ошибка
LINE 1: INSERT into dic_memory(displname, assetname) VALUES ('1 ГБ D..
ну так полностью её показывай, скорее всего криво собранный params_placeholders, дебаж как ты его собрал и как написано в он должен быть в доках
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 14:07
15000 руб./за проект
22 дек. 2024, в 13:01
50000 руб./за проект
22 дек. 2024, в 10:44
15000 руб./за проект