当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sqlite3.Connection.backup用法及代码示例


用法:

backup(target, *, pages=- 1, progress=None, name='main', sleep=0.25)

此方法对 SQLite 数据库进行备份,即使它正在被其他客户端访问,或者同时被同一连接访问。副本将被写入强制参数 target ,该参数必须是另一个 Connection 实例。

默认情况下,或者当pages0 或负整数时,一步复制整个数据库;否则,该方法一次执行最多 pages 页的循环复制。

如果指定了progress,则它必须是None,或者是一个可调用对象,在每次迭代时将使用三个整数参数执行,分别是最后一次迭代的status,仍待处理的页数remaining复制和total 页数。

name 参数指定将被复制的数据库名称:它必须是包含默认值 "main" 的字符串,以指示主数据库; "temp"表示临时数据库;或在附加数据库的ATTACH DATABASE 语句中的AS 关键字之后指定的名称。

sleep 参数指定在连续尝试备份剩余页面之间休眠的秒数,可以指定为整数或浮点值。

示例 1,将现有数据库复制到另一个:

import sqlite3

def progress(status, remaining, total):
    print(f'Copied {total-remaining} of {total} pages...')

con = sqlite3.connect('existing_db.db')
bck = sqlite3.connect('backup.db')
with bck:
    con.backup(bck, pages=1, progress=progress)
bck.close()
con.close()

示例 2,将现有数据库复制到临时副本中:

import sqlite3

source = sqlite3.connect('existing_db.db')
dest = sqlite3.connect(':memory:')
source.backup(dest)

3.7 版中的新函数。

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 sqlite3.Connection.backup。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。