SQLite 数据库别名
有这样一种场景:当在同一时间有多个数据库可用,您想使用其中的任何一个。 那么就必须有一个 命令来选择某一个数据库。
SQLite 的 ATTACH DATABASE 语句可以选择一个数据库作为当前数据库并给它定义一个别名
使用该命令后,所有的 SQLite 语句将在当前数据库下执行
语法
ATTACH DATABASE 'DatabaseName' As 'Alias-Name';
如果数据库尚未被创建,上面的命令将创建一个数据库 如果数据库已存在,则把数据库文件名称与逻辑数据库 'Alias-Name' 绑定在一起
范例
我们给 test.db 定义一个别名 yufei
sqlite> ATTACH DATABASE 'twle.db' as 'yufei';
使用 SQLite .database 命令来显示别名数据库
sqlite> .database seq name file --- --------------- --------------------------------------------------- 0 main /Users/yufei/Developer/sqlite3/twle.db 2 yufei /Users/yufei/Developer/sqlite3/twle.db
别名 main 和 temp
数据库名称 main 和 temp 被保留用于主数据库和存储临时表及其他临时数据对象的数据库。
这两个数据库名称可用于每个数据库连接,但不能用于定义别名,否则将得到一个警告消息
sqlite> ATTACH DATABASE 'twle.db' as 'temp'; Error: database TEMP is already in use sqlite> ATTACH DATABASE 'twle.db' as 'main'; Error: database TEMP is already in use