6
我在我的本地主機(Win NT)上有sqlite數據庫並且想備份它。我想用shell命令'.backup'來完成這個任務。但似乎我可以在備份過程中將新行插入到數據庫中。sqlite3 shell命令'.backup'和事務
'.backup'shell命令對我的數據庫啓動新的獨佔事務嗎?
我想當我執行'.backup'shell命令時,它鎖定了我的數據庫。
我在我的本地主機(Win NT)上有sqlite數據庫並且想備份它。我想用shell命令'.backup'來完成這個任務。但似乎我可以在備份過程中將新行插入到數據庫中。sqlite3 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;
一個不太哈克的方式是,如果你使用的是名爲「備份」表,您爲每個副本中插入一行(日期,..)(如果這些信息與你有關)。