我有我的本地主机(Windows NT的)在SQLite数据库,并希望将它备份起来。 我想用shell命令“的.backup”来完成这个任务。 但似乎我可以在备份过程中插入新行到数据库中。
不“的.backup” shell命令在我的数据库启动新的独家交易?
我想,当我执行“的.backup” shell命令锁定我的数据库。
我有我的本地主机(Windows NT的)在SQLite数据库,并希望将它备份起来。 我想用shell命令“的.backup”来完成这个任务。 但似乎我可以在备份过程中插入新行到数据库中。
不“的.backup” shell命令在我的数据库启动新的独家交易?
我想,当我执行“的.backup” shell命令锁定我的数据库。
该sqlite3的备份方法不锁定数据库。 我会建议使用以下解决方法,如果你想锁定数据库:
INSERT
语句时,数据库得到了保留锁。 然而,这个INSERT
语句可以是空的。 ROLLBACK
或COMMIT
。 码:
BEGIN;
INSERT INTO <anytable> SELECT * FROM <anytable> WHERE 1=0;
.backup <database> <file>
ROLLBACK;
一个不太哈克的方式是,如果你使用的是名为“备份”表,您插入的每个副本行(日期,..)(如果该信息对于你)。