Я ищу некоторую помощь о том, как сделать это в Python, используя sqlite3
В основном у меня есть процесс, который загружает БД (временную) и затем должен вставить свои записи во 2-ю идентичную БД (основную БД) .. и в то же время игнорировать / обойти любые возможные ошибки дублирующихся ключей
Я думал о двух сценариях, но не уверен, как лучше всего это сделать в Python
Вариант 1:
- создать 2 соединения и объекты курсора, по 1 на каждую БД
выберите из DB 1, например:
dbcur.executemany('SELECT * from table1')
rows = dbcur.fetchall()
вставить их в БД 2:
dbcur.execute('INSERT INTO table1 VALUES (:column1, :column2)', rows)
dbcon.commit()
Это, конечно, не работает, так как я не уверен, как это сделать правильно:)
Вариант 2 (который я бы предпочел, но не уверен, как это сделать):
- SELECT и INSERT в 1 утверждении
Кроме того, у меня есть 4 таблицы в БД, каждая с разными столбцами. Могу ли я пропустить присвоение имен столбцам в операторе INSERT?
Что касается дубликатов ключей, я прочитал, что могу использовать «ON DUPLICATE KEY» для обработки
например.
INSERT INTO table1 VALUES (:column1, :column2) ON DUPLICATE KEY UPDATE set column1=column1