【发布时间】:2012-03-18 15:36:48
【问题描述】:
我需要做的是将一个 sqlite3 数据库从磁盘加载到内存中,使用它,当脚本退出时,将内存中的数据库保存到磁盘。我该怎么做呢?谢谢!
【问题讨论】:
我需要做的是将一个 sqlite3 数据库从磁盘加载到内存中,使用它,当脚本退出时,将内存中的数据库保存到磁盘。我该怎么做呢?谢谢!
【问题讨论】:
您需要做的只是connect 到数据库 - 然后您可以用它做任何您想做的事情。
from sqlite3 import connect
conn = connect("/path/to/your/sqlite.db")
# Do what you need to with the database here
# Changes (inserts, updates, etc) will be persisted
# to disk whenever you commit a transaction.
如果您需要能够运行一系列命令并在其中一个不成功时将它们全部回滚,您应该使用transaction。
如果您需要复制现有数据库,对其进行更改,然后将其保存在其他位置只有在更改成功时然后您可以执行以下操作之一:
ATTATCH DATABASE 命令将现有数据库附加到新的内存数据库。将现有数据库中的所有数据复制到内存数据库并对其进行转换后,您可以附加一个新数据库并重新复制所有内容。sqlite3 的Connection.iterdump 将表的内容作为SQL 脚本获取,然后您可以将其作为this answer suggests 传递给sqlite3.Cursor.executescript(使用内存或磁盘连接字符串用于您的新数据库)。【讨论】: