我正在寻找使用sqlite3在Python中执行此操作的帮助。
基本上,我的过程会下载一个临时数据库,然后需要将其记录插入到第二个完全相同的数据库(主数据库)中,同时忽略/跳过任何可能的重复键错误。
我考虑了两种情况,但不确定如何在Python中最好地执行此操作。
选项1:
- create 2 connections and cursor objects, 1 to each DB
select from DB 1 eg:
dbcur.executemany('SELECT * from table1') rows = dbcur.fetchall()
insert them into DB 2:
dbcur.execute('INSERT INTO table1 VALUES (:column1, :column2)', rows) dbcon.commit()
当然这是不起作用的,因为我不确定如何正确做这件事 :)
选项2(我更喜欢的选项,但不确定如何做):
- 在1个语句中进行SELECT和INSERT
此外,我在数据库中有4个表,每个表的列都不同,我可以在INSERT语句中跳过命名列吗?
至于重复键,我已经阅读了可以使用“ON DUPLICATE KEY”来处理,例如。
INSERT INTO table1 VALUES (:column1, :column2) ON DUPLICATE KEY UPDATE set column1=column1