我可以想到四种可能的解决方案:
原文链接:https://www.f2er.com/oracle/205841.html>在查询外部表时使用完全限定表名。 MysqL支持dbname.tablename`语法来访问当前数据库范围之外的表。这要求当前连接的用户具有从另一个物理数据库中的请求表读取的适当权限。
>如果您的外部数据库在不同的MysqL服务器上运行(在同一台机器上或通过网络连接),您可以使用复制来不断更新远程表的只读副本。只有在运行两个单独的MysqL实例时,才能进行复制。
>使用FEDERATED
MySQL storage engine将表虚拟导入到当前数据库中。当使用FEDERATED存储引擎时,这将提供将当前用户访问权限提供给第二个数据库的要求,因为CREATE TABLE-statement提供了凭据。这也适用于在不同物理服务器或不同MysqL实例上运行的数据库。我认为这将是最差的执行选项,并且确实有一些limitations – 或多或少重要,这取决于您的使用情况和您的要求。
>这是方法1的扩展。而不必在每次从外部表中请求信息时指定完全限定表名,您只需在现有数据库内创建一个基于简单的SELECT<<< ;列>> FROM< data>>。< table>> ;.这类似于FEDERATED方法,但是限于同一MysqL实例上的表。