0xC*_*22L 3 python sqlite python-2.7
该sqlite3命令行工具可以让我.save <file>的内存数据库,而无需转储在SQL中的字符串/脚本形式。
我想在不编写太多样板代码的情况下做类似的事情。然而,我并不总是想保存它,这就是为什么我想在我真正需要它之前避免使用磁盘数据库。
有没有办法在 Python 中做到这一点,除了以字符串形式转储 SQL 并将其导入到磁盘文件(我知道如何做并且已经实现)?
似乎没有单行解决方案。
in-memory可以使用连接对象的 iterdump 方法来备份sqlite 数据库。当然,这只是转储 sql 文本并导入它而已。
import sqlite3
# set up a database in memory
c = sqlite3.connect(':memory:')
c.execute('CREATE TABLE my_table (id int, name text);')
c.execute("INSERT INTO my_table VALUES (1, 'bruce'), (2, 'wayne'), (3, 'BATMAN');")
c.commit()
# write database to disk
c2 = sqlite3.connect('mydb.db')
with c2:
for line in c.iterdump():
if line not in ('BEGIN;', 'COMMIT;'): # let python handle the transactions
c2.execute(line)
c2.commit()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2293 次 |
| 最近记录: |