考慮一種情況,當(dāng)您有多個(gè)可用數(shù)據(jù)庫(kù)并且想一次使用其中任何一個(gè)數(shù)據(jù)庫(kù)時(shí)。SQLite ATTACH DATABASE
語(yǔ)句用于選擇特定的數(shù)據(jù)庫(kù),執(zhí)行此命令后,所有SQLite語(yǔ)句將在附加數(shù)據(jù)庫(kù)下執(zhí)行。
以下是SQLite ATTACH DATABASE語(yǔ)句的基本語(yǔ)法。
ATTACH DATABASE 'DatabaseName' As 'Alias-Name';
如果尚未創(chuàng)建數(shù)據(jù)庫(kù),上述命令還將創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),否則它將僅將數(shù)據(jù)庫(kù)文件名附加到邏輯數(shù)據(jù)庫(kù)“別名”。
如果要附加現(xiàn)有數(shù)據(jù)庫(kù)testDB.db
,則ATTACH DATABASE語(yǔ)句如下-
sqlite> ATTACH DATABASE 'testDB.db' as 'TEST';
使用SQLite.database
命令顯示附加的數(shù)據(jù)庫(kù)。
sqlite> .database seq name file --- --------------- ---------------------- 0 main /home/sqlite/testDB.db 2 test /home/sqlite/testDB.db
數(shù)據(jù)庫(kù)名稱main和temp是為主數(shù)據(jù)庫(kù)和保留臨時(shí)表和其他臨時(shí)數(shù)據(jù)對(duì)象的數(shù)據(jù)庫(kù)保留的。 這兩個(gè)數(shù)據(jù)庫(kù)名稱對(duì)于每個(gè)數(shù)據(jù)庫(kù)連接都存在,并且不應(yīng)用于附件,否則您將收到以下警告消息。
sqlite> ATTACH DATABASE 'testDB.db' as 'TEMP'; Error: database TEMP is already in use sqlite> ATTACH DATABASE 'testDB.db' as 'main'; Error: database TEMP is already in use