SQLite - 分離資料庫



SQLite 的 **DETACH DATABASE** 語句用於分離並斷開先前使用 ATTACH 語句附加到資料庫連線的命名資料庫。如果同一個資料庫檔案已使用多個別名附加,則 DETACH 命令只會斷開給定名稱的連線,其餘的附加連線將繼續保持。您無法分離 **main** 或 **temp** 資料庫。

如果資料庫是記憶體資料庫或臨時資料庫,則資料庫將被銷燬,其內容將丟失。

語法

以下是 SQLite DETACH DATABASE 'Alias-Name' 語句的基本語法。

DETACH DATABASE 'Alias-Name';

這裡,'Alias-Name' 是您在使用 ATTACH 語句附加資料庫時使用的相同別名。

示例

假設您有一個數據庫,您在上一章中建立了它並使用 'test' 和 'currentDB' 附加到它,我們可以使用 **.database** 命令檢視。

sqlite>.databases
seq  name             file
---  ---------------  ----------------------
0    main             /home/sqlite/testDB.db
2    test             /home/sqlite/testDB.db
3    currentDB        /home/sqlite/testDB.db

讓我們嘗試使用以下命令從 testDB.db 中分離 'currentDB'。

sqlite> DETACH DATABASE 'currentDB';

現在,如果您檢查當前的附加情況,您會發現 testDB.db 仍然連線到 'test' 和 'main'。

sqlite>.databases
seq  name             file
---  ---------------  ----------------------
0    main             /home/sqlite/testDB.db
2    test             /home/sqlite/testDB.db
廣告