考虑这样一种情况,有多个可用数据库,并且需要一次使用其中任何一个。 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
数据库名称main和temp为主数据库和保存临时表和其他临时数据对象的数据库保留。这两个数据库名称对于每个数据库连接都存在,不应用于附件。如果使用这些保留的数据库名称,将显示以下警告消息:
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