gpt4 book ai didi

sqlite - SQLite3 .backup 和 .dump 命令是否锁定数据库?

转载 作者:行者123 更新时间:2023-12-02 20:29:01 25 4
gpt4 key购买 nike

我能找到的关于 .backup.dump 的唯一文档是 .help 显示的文档:

.backup ?DB? FILE      Backup DB (default "main") to FILE
.dump ?TABLE? ... Dump the database in an SQL text format
If TABLE specified, only dump tables matching
LIKE pattern TABLE.

最大的问题是:这两个命令在复制/转储之前是否会锁定数据库?备份是否一致?

This answer有一些关于 .backup 的信息,但是有这方面的权威文档吗? (那么 .dump 呢?)我在 SQLite 文档中找到的唯一内容是“Online Backup API ”,但我对 API 不感兴趣,我只想备份数据库。

最佳答案

.dump 命令只是在事务内使用一堆 SELECT 语句读取整个数据库。此事务自动锁定数据库以进行写入,但允许并发读取。

.backup 命令不关心 SQL;它将数据库页面直接复制到新文件中。所有页面读取都通过正常机制来访问数据库文件,并包装在事务中。当使用多个sqlite3_backup_step()调用时,事务会结束以允许其他连接访问数据库,但会检测到任何更改,在这种情况下,整个备份会自动重新启动。

关于sqlite - SQLite3 .backup 和 .dump 命令是否锁定数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41744297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com