假設(shè)這樣一種情況,當(dāng)在同一時(shí)間有多個(gè)數(shù)據(jù)庫可用,您想使用其中的任何一個(gè)。SQLite 的 ATTACH DATABASE 語句是用來選擇一個(gè)特定的數(shù)據(jù)庫,使用該命令后,所有的 SQLite 語句將在附加的數(shù)據(jù)庫下執(zhí)行。
SQLite 的 ATTACH DATABASE 語句的基本語法如下:
ATTACH DATABASE file_name AS database_name;
如果數(shù)據(jù)庫尚未被創(chuàng)建,上面的命令將創(chuàng)建一個(gè)數(shù)據(jù)庫,如果數(shù)據(jù)庫已存在,則把數(shù)據(jù)庫文件名稱與邏輯數(shù)據(jù)庫 'Alias-Name' 綁定在一起。
打開的數(shù)據(jù)庫和使用 ATTACH附加進(jìn)來的數(shù)據(jù)庫的必須位于同一文件夾下。
如果想附加一個(gè)現(xiàn)有的數(shù)據(jù)庫 testDB.db,則 ATTACH DATABASE 語句將如下所示:
sqlite> ATTACH DATABASE 'testDB.db' as 'TEST';
使用 SQLite .database 命令來顯示附加的數(shù)據(jù)庫。
sqlite> .database
seq name file
--- --------------- ----------------------
0 main /home/sqlite/testDB.db
2 test /home/sqlite/testDB.db
數(shù)據(jù)庫名稱 main 和 temp 被保留用于主數(shù)據(jù)庫和存儲(chǔ)臨時(shí)表及其他臨時(shí)數(shù)據(jù)對(duì)象的數(shù)據(jù)庫。這兩個(gè)數(shù)據(jù)庫名稱可用于每個(gè)數(shù)據(jù)庫連接,且不應(yīng)該被用于附加,否則將得到一個(gè)警告消息,如下所示:
sqlite> ATTACH DATABASE 'testDB.db' as 'TEMP';
Error: database TEMP is already in use
sqlite> ATTACH DATABASE 'testDB.db' as 'main';
Error: database main is already in use;
更多建議: