前端之家收集整理的这篇文章主要介绍了
sqlite3 shell命令’.backup’和事务,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的本地主机(Win NT)上有
sqlite
数据库,想备份它.我想使用
shell命令’.backup’来完成这个任务.但似乎我可以在备份过程中将新行插入
数据库.
‘.backup’hell命令是否在我的数据库上启动新的独占事务?
我想当我执行’.backup’hell命令时它会锁定我的数据库.
sqlite3备份
方法不会锁定
数据库.如果您想锁定
数据库,我建议使用以下
解决方法:
>开始交易(共享锁)
>通过使用任何INSERT语句,数据库获得保留锁.但是,此INSERT语句可以为空.
>备份数据库.
>使用ROLLBACK或COMMIT结束事务.
码:
BEGIN;
INSERT INTO <anytable> SELECT * FROM <anytable> WHERE 1=0;
.backup <database> <file>
ROLLBACK;
如果您使用名为“backup”的表并且为每个副本插入一行(date,..)(如果此信息与您相关),则不太常见.