SQLite 分離數(shù)據(jù)庫(kù)

2022-02-18 15:23 更新

SQLite 的 DETACH DATABASE 語(yǔ)句是用來(lái)把命名數(shù)據(jù)庫(kù)從一個(gè)數(shù)據(jù)庫(kù)連接分離和游離出來(lái),連接是之前使用 ATTACH 語(yǔ)句附加的。如果同一個(gè)數(shù)據(jù)庫(kù)文件已經(jīng)被附加上多個(gè)別名,DETACH 命令將只斷開給定名稱的連接,而其余的仍然有效。您無(wú)法分離 main 或 temp 數(shù)據(jù)庫(kù)。

如果數(shù)據(jù)庫(kù)是在內(nèi)存中或者是臨時(shí)數(shù)據(jù)庫(kù),則該數(shù)據(jù)庫(kù)將被摧毀,且內(nèi)容將會(huì)丟失。

語(yǔ)法

SQLite 的 DETACH DATABASE 'Alias-Name' 語(yǔ)句的基本語(yǔ)法如下:

DETACH DATABASE 'Alias-Name';

在這里,'Alias-Name' 與您之前使用 ATTACH 語(yǔ)句附加數(shù)據(jù)庫(kù)時(shí)所用到的別名相同。

實(shí)例

假設(shè)在前面的章節(jié)中您已經(jīng)創(chuàng)建了一個(gè)數(shù)據(jù)庫(kù),并給它附加了 '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

現(xiàn)在,讓我們嘗試把 'currentDB' 從 testDB.db 中分離出來(lái),如下所示:

sqlite> DETACH DATABASE 'currentDB';

現(xiàn)在,如果檢查當(dāng)前附加的數(shù)據(jù)庫(kù),您會(huì)發(fā)現(xiàn),testDB.db 仍與 'test' 和 'main' 保持連接。

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


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)