要檢查我的資料庫,我總是打開設備檔案資源管理器并導航到 package.name> databases> 在這里我找到 3 個檔案:dbName、dbName-shm、dbName-wal。我占用的檔案是dbName,所以我在選擇檔案保存路徑后右鍵單擊并選擇“另存為...”,然后我用一個名為“DB Browser for SQLite”的軟體檢查它。
我在查看我的資料庫時從未遇到過問題,但大約 1 周前問題開始出現,因為名為“dbName”的檔案從未更新,我怎么知道?在“日期”列中,每個檔案的最后修改日期、dbName.shm 和 dbName-wal 在我點擊“同步”時更改“日期”中的值,但“dbName”在打開檔案時保留創建日期和時間“資料庫瀏覽器”什么都沒有。
問題是什么?保存我的資料庫的路徑是否已更改?
uj5u.com熱心網友回復:
您所描述的癥狀與 -wal(即 dbName-wal)執行其設計目的一致。
簡短的解決方法是保存所有三個檔案,而不僅僅是 dbName 檔案。
更好/更安全的解決方法是關閉資料庫,確保資料庫完全提交。
-wal 檔案(如果存在且不為空)是資料庫的一部分。只打開 dbName 檔案而不打開 -wal 檔案將意味著某些資料庫丟失。
-wal 檔案用于記錄更改以在需要或請求回滾時使用。由于此類更改首先應用于 SQLite 知道是資料庫一部分的 -wal 檔案。我可以洗掉需要回滾 -wal 檔案中的相關頁面的事件。
保存在 -wal 檔案中的更改通過 COMMITS 應用于實際資料庫檔案,其中一些默認情況下會自動執行。自動提交可能不會提交所有更改。但是,關閉資料庫將提交所有更改。
你可能希望看到https://sqlite.org/wal.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/360088.html
