SQLite DETACH DATABASE語句用于將命名數(shù)據(jù)庫與以前使用ATTACH語句附加的數(shù)據(jù)庫連接分離和取消關(guān)聯(lián)。如果同一個(gè)數(shù)據(jù)庫文件附加了多個(gè)別名,則DETACH命令將僅斷開給定名稱的連接,其余附件仍將繼續(xù)。您不能分離main
或temp
數(shù)據(jù)庫。
如果該數(shù)據(jù)庫是內(nèi)存數(shù)據(jù)庫或臨時(shí)數(shù)據(jù)庫,則該數(shù)據(jù)庫將被破壞并且內(nèi)容將丟失。
以下是SQLite DETACH DATABASE 'Alias-Name' 語句的基本語法。
DETACH DATABASE 'Alias-Name';
在這里,“Alias-Name”是您使用ATTACH語句附加數(shù)據(jù)庫時(shí)使用的別名。
假設(shè)您有一個(gè)數(shù)據(jù)庫,您在上一章中創(chuàng)建了該數(shù)據(jù)庫,并在數(shù)據(jù)庫中附加了“ 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';
現(xiàn)在,如果您要檢查當(dāng)前附件,則會(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