?
本文檔使用 php中文網(wǎng)手冊(cè) 發(fā)布
SQLite的 DETACH DTABASE 語(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ì)丟失。
SQLite 的 DETACH DATABASE 'Alias-Name' 語(yǔ)句的基本語(yǔ)法如下:
DETACH DATABASE 'Alias-Name';
在這里,'Alias-Name' 與您之前使用 ATTACH 語(yǔ)句附加數(shù)據(jù)庫(kù)時(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