SQLite 分離數(shù)據(jù)庫(kù)
sqlite 分離數(shù)據(jù)庫(kù)
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 命令將只斷開(kāi)給定名稱(chēng)的連接,而其余的仍然有效。您無(wú)法分離 main 或 temp 數(shù)據(jù)庫(kù)。
如果數(shù)據(jù)庫(kù)是在內(nèi)存中或者是臨時(shí)數(shù)據(jù)庫(kù),則該數(shù)據(jù)庫(kù)將被摧毀,且內(nèi)容將會(huì)丟失。
1. 語(yǔ)法
sqlite 的 detach database 'alias-name' 語(yǔ)句的基本語(yǔ)法如下:
detach database 'alias-name';
在這里,'alias-name' 與您之前使用 attach 語(yǔ)句附加數(shù)據(jù)庫(kù)時(shí)所用到的別名相同。
2. 范例
假設(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