从磁盘获取sqlite3数据库,将其加载到内存,并将其保存到磁盘?

时间:2012-03-18 15:36:48

标签: python sql sqlite memory

我需要做的是将sqlite3数据库从磁盘加载到内存中,使用它,当脚本退出时将内存数据库保存到磁盘。我该怎么做呢?谢谢!

1 个答案:

答案 0 :(得分:1)

您需要做的只是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

如果您需要复制现有数据库,请对其进行更改,然后将其保存到其他地方仅在更改成功时才能执行以下操作之一:

  • 创建内存数据库,然后使用SQLite的ATTATCH DATABASE命令将现有数据库附加到新的内存数据库。将所有数据从现有数据库复制到内存数据库并对其进行转换后,您可以附加新数据库并重新复制所有数据。
  • 复制现有数据库文件,尝试对其进行更改,如果操作未成功,则删除新文件。
  • 使用sqlite3的{​​{3}}将表格内容作为SQL脚本获取,然后将其作为Connection.iterdump传递给sqlite3.Cursor.executescript(使用in-内存或新数据库的磁盘连接字符串。)