如何在python中将基于磁盘的sqlite表复制到内存数据库?我知道桌子的架构。
答案 0 :(得分:31)
这段代码更通用,但也许它可以帮到你:
import sqlite3
new_db = sqlite3.connect(':memory:') # create a memory database
old_db = sqlite3.connect('test.db')
query = "".join(line for line in old_db.iterdump())
# Dump old database in the new one.
new_db.executescript(query)
编辑:获取指定表格,您可以在for循环中更改,如下所示:
name_table = "test_table" # name of the table that you want to get.
for line in old_db.iterdump():
if name_table in line:
query = line
break
答案 1 :(得分:3)
查看SQLite Backup API。示例是在C中,但这应该向您展示它是如何有效地完成的。
答案 2 :(得分:1)
另一种选择,对于那些使用python和sqlalchemy:
http://www.tylerlesmann.com/2009/apr/27/copying-databases-across-platforms-sqlalchemy/
背后的想法是将元数据从源数据库复制到目标数据库,然后在列之后传输列。