使用关系型数据库时,经常需要在不同的表(Table)之间联合操作。对于同一个数据库中的表,容易实现,譬如使用JOIN。如果表处于不同的数据库(.db文件),如何实现?
SQLite以“连接”为使用数据库的基本方式,一个连接对应到一个db文件。对于连接到数据库A,同时需要使用数据库B中的数据的情况,SQLite提供了一种将外部数据库附加到当前数据库连接的机制——Attach DB。
Attach DB的使用方法依然是SQL语句,语法为:
附加:
attach [database] filename as database_name;
取消附加:
detach [database] database_name;
下面使用具体的db试用一下Attach DB,探讨一些细节。
基本用法
两个测试数据库test.db,test1.db
~/test_sqlite$ sqlite3 test.db
SQLite version 3.16.2 2017-01-06 16:32:41
Enter ".help" for usage hints.
sqlite>
sqlite> .tables
test_table test_table2
sqlite>
sqlite> .schema
CREATE TABLE test_table (id integer primary key, name text, description text);
CREATE TABLE test_table2 (a TEXT, b TEXT, c TEXT, d TEXT);
CREATE INDEX test_table2_index on test_table2 (a,b,c,d);
sqlite>
sqlite> .headers on
sqlite>
sqlite> select * from test_table;
id|name|description
0|name0|des0
1|name1|des1
2|name2|des2