SQLite 分離資料庫

SQLite 分離資料庫

SQLite 的 DETACH DATABASE 語句是用來把命名資料庫從一個數據庫連線分離和遊離出來,連線是之前使用 ATTACH 語句附加的。如果同一個資料庫檔案已經被附加上多個別名,DETACH 命令將只斷開給定名稱的連線,而其餘的仍然有效。您無法分離 maintemp 資料庫。

如果資料庫是在記憶體中或者是臨時資料庫,則該資料庫將被摧毀,且內容將會丟失。

語法

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

現在,讓我們嘗試把 'currentDB' 從 testDB.db 中分離出來,如下所示:

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