考虑这样一种情况,有多个可用数据库,并且需要一次使用其中任何一个。 SQLite ATTACH DATABASE 语句可用于将特定数据库文件添加到当前数据库连接。

执行此命令后,所有 SQLite 语句都将在附加数据库下执行。如果数据库文件不存在,则执行命令时会创建该文件。

语法

使用 SQLite ATTACH DATABASE 语句的语法如下:

ATTACH [DATABASE] 'filename' AS database_name; 

参数

DATABASE可选。 该命令可以作为 ATTACH DATABASE 或 ATTACH 运行。
filename必需。 指定要附加到当前数据库连接的数据库文件的名称。
database_name必需。 指定要在当前数据库连接上下文中使用的数据库文件的逻辑名称。

示例:附加数据库文件

首先让我们使用 .database 点命令查看当前连接中可用的数据库列表。

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

要附加名为 example.db 的数据库文件,可以使用以下命令:

sqlite> ATTACH DATABASE '/home/sqlite/example.db' AS 'example'; 

附加数据库文件后,可以再次使用.database点命令查看当前连接中可用的数据库列表。

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

数据库名称maintemp为主数据库和保存临时表和其他临时数据对象的数据库保留。这两个数据库名称对于每个数据库连接都存在,不应用于附件。如果使用这些保留的数据库名称,将显示以下警告消息:

sqlite> ATTACH DATABASE '/home/sqlite/example.db' AS 'TEMP';
Error: database TEMP is already in use
sqlite> ATTACH DATABASE '/home/sqlite/example.db' AS 'MAIN';
Error: database MAIN is already in use