从磁盘中获取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.

如果您需要能够运行一系列命令,并在其中一个命令不成功时将其全部回滚,则应该使用事务。

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

  • 创建一个内存中数据库,然后使用SQLite的ATTATCH DATABASE命令将现有数据库附加到新的内存中数据库。一旦您将现有数据库中的所有数据复制到内存中的数据库中并对其进行转换,就可以附加一个新数据库并重新复制所有数据
  • 复制现有数据库文件,尝试对其进行更改,如果操作不成功,则删除新文件
  • 使用sqlite3Connection.iterdump以SQL脚本的形式获取表的内容,然后可以将该脚本传递给sqlite3.Cursor.executescript,正如这个答案所建议的那样(为新数据库使用内存中或磁盘上的连接字符串)

最新更新