SQLite 附加數(shù)據(jù)庫(kù)

2022-02-18 15:21 更新

假設(shè)這樣一種情況,當(dāng)在同一時(shí)間有多個(gè)數(shù)據(jù)庫(kù)可用,您想使用其中的任何一個(gè)。SQLite 的 ATTACH DATABASE 語(yǔ)句是用來(lái)選擇一個(gè)特定的數(shù)據(jù)庫(kù),使用該命令后,所有的 SQLite 語(yǔ)句將在附加的數(shù)據(jù)庫(kù)下執(zhí)行。

語(yǔ)法

SQLite 的 ATTACH DATABASE 語(yǔ)句的基本語(yǔ)法如下:

ATTACH DATABASE file_name AS database_name;

如果數(shù)據(jù)庫(kù)尚未被創(chuàng)建,上面的命令將創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),如果數(shù)據(jù)庫(kù)已存在,則把數(shù)據(jù)庫(kù)文件名稱(chēng)與邏輯數(shù)據(jù)庫(kù) 'Alias-Name' 綁定在一起。

打開(kāi)的數(shù)據(jù)庫(kù)和使用 ATTACH附加進(jìn)來(lái)的數(shù)據(jù)庫(kù)的必須位于同一文件夾下。

實(shí)例

如果想附加一個(gè)現(xiàn)有的數(shù)據(jù)庫(kù) testDB.db,則 ATTACH DATABASE 語(yǔ)句將如下所示:

sqlite> ATTACH DATABASE 'testDB.db' as 'TEST';

使用 SQLite .database 命令來(lái)顯示附加的數(shù)據(jù)庫(kù)。

sqlite> .database
seq  name             file
---  ---------------  ----------------------
0    main             /home/sqlite/testDB.db
2    test             /home/sqlite/testDB.db

數(shù)據(jù)庫(kù)名稱(chēng) main 和 temp 被保留用于主數(shù)據(jù)庫(kù)和存儲(chǔ)臨時(shí)表及其他臨時(shí)數(shù)據(jù)對(duì)象的數(shù)據(jù)庫(kù)。這兩個(gè)數(shù)據(jù)庫(kù)名稱(chēng)可用于每個(gè)數(shù)據(jù)庫(kù)連接,且不應(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;


以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)