SQLite 跨数据库查询

来源:互联网 发布:万方中国标准数据库 编辑:程序博客网 时间:2024/05/04 14:36
SQLite 跨库查询【跨数据库】

  • 场景:数据库A和数据库B的表之间有参照,需要跨数据库做查询操作...
  • 方案:用SQLite解释器中的提供的 ATTACH [DATABASE]关键字完成数据库附加:
    ATTACH DATABASE[Database Path] AS[Alias];
    - [Database Path]
    i.绝对路径;
    ii.相对路径,即要附加的数据库与当前维持连接数据库的相对地址。
    -
    [Alias]
    附加数据库的别名。
  • 查询:查询时加上[数据库别名]即可
    SELECT * FROM DB_ Alias.TABLE_NameWHERE ...;
  • 例子:现在维持连接的数据库称为A(可省略),其中表Ta中的字段id_b与位于路径"d:\B.db"的数据库(别名B)中Tb表字段id有参照,查询条件即"A.Ta.id_b = B.Tb.id":
    ATTACH DATABASE"d:\B.db"AS"B";
    SELECT * FROM Ta ,B.Tb WHERETa.id_b = B.Tb.id;

    PS . 如果维持连接的数据库A与要附加的数据库B( B.db )在同一路径下,附加语句可写为:
    ATTACH DATABASE"B.db"AS"B";

    PS . 发现win7下相对路径会默认为程序运行路径,xp下会默认为数据库已有连接路径,需要注意。

以上代码SQLite3.6.21及官方C#运行库System.Data.SQLite.dll[ver.1.0.81.0]运行通过(系统cn_Xp sp3)。
0 0
原创粉丝点击