我有两个SQlite数据库“archive\u db”和“recent\u db”具有相同的表。 我想用“最近的数据库”更新“存档数据库”的内容。 我试过:
dbconn_archive = sqlite3.connect(archive_db)
dbconn_recent = sqlite3.connect(recent_db)
query = "".join(line for line in dbconn_recent.iterdump())
dbconn_archive.executescript(query)
但这不起作用,因为这些表已经存在于存档数据库中。你知道吗
那么用“最近的数据库”更新“存档数据库”的正确查询是什么呢?你知道吗
您使用的方法非常适合从头开始从现有数据库创建新数据库。我能想到的更新数据库的最佳方法实际上需要更多的代码。你知道吗
recent_db
中有哪些表。你知道吗recent_db
中可用表的列表:recent_db
追加到archive_db
archive_db
中的列强制了某种类型的唯一性,您可以捕获SQLite的IntegrityError,并根据唯一性条件跳过表中已经存在的记录注意:我假设
recent_db
中的所有表也存在于archive_db
。如果没有,那么您将不得不进行额外的检查以在archive_db
中创建新表,但这将超出此问题的范围。我还假设您不想更新sqlite_sequence
表,因为它是一个用于跟踪rowid的内部表。最后,我将假设recent_db
表中的列顺序对于archive_db
是相同的相关问题 更多 >
编程相关推荐