【发布时间】:2011-02-06 12:46:33
【问题描述】:
我有多个数据库文件,它们存在于多个位置,结构完全相同。我了解附加功能可用于将多个文件连接到一个数据库连接,但是,这会将它们视为单独的数据库。我想做类似的事情:
SELECT uid, name FROM ALL_DATABASES.Users;
还有,
SELECT uid, name FROM DB1.Users UNION SELECT uid, name FROM DB2.Users ;
不是一个有效的答案,因为我需要合并任意数量的数据库文件。最后,数据库文件必须保持独立。有谁知道如何做到这一点?
编辑:一个答案给了我一个想法:是否可以创建一个组合所有不同表的视图?是否可以查询所有数据库文件以及它们“挂载”哪些数据库,然后在视图查询中使用它来创建“主表”?
【问题讨论】:
-
为什么您不愿意在查询中在客户端逻辑组合表对象(而不是数据库文件)?如果您愿意指定要合并的数据库文件(本周可能是 5 个,但下周可能是 7 或 3 个),为什么不能只在查询中这样做?
-
其原因是其他文件位于远程服务器上,这些服务器可能启动也可能未启动。我已经有了一个抽象,可以让它们看起来是本地文件。此外,它们包含本地数据库的不同但不是必需的数据。本质上,我将所有数据库汇集起来形成一个分布式数据库(尽管我对使用该术语犹豫不决,因为数据库的使用方式与名称所暗示的完全不同,而且我也不想要分布式数据库解决方案,因为文件已经本地化,它只会使事情复杂化)。
标签: sql sqlite multiple-databases