mysql - SQL查询多个系统上的相同表

标签 mysql sql delphi

应用概览:
我有一个 Delphi 应用程序,它允许用户使用 TADOQuery 组件检索数据,对不同系统上的 MySQL 数据库运行查询。用户可以通过运行两个单独的查询从两个不同系统(例如系统 1 和系统 2 上的 database_abc 中的 table_xyz)中的相同表中检索数据,然后将两组数据写入文件并在 PC 上手动连接以形成一个报告。

问题:
是否可以通过一次查询从不同系统上的相同表/数据库中选择数据?由于 TADOQuery 的连接字符串必须指向单个系统的限制,我非常有信心这是不可能的,但我想确保这是正确的。

我知道可以使用 UNION 语句从同一系统上两个不同数据库中的两个相同表中检索数据,例如:
从 database1.table_xyz 中选择 * UNION 从 database2.table_xyz 中选择 *

我需要做的和上面的例子类似,只是从不同系统的数据库中获取数据。基本上,是否有可能以某种方式将连接字符串合并到 SQL 语句中,或者以某种不同的方式进行连接?

就像我说的,我确信这是不可能的,但检查一下也无妨!

最佳答案

这就是所谓的“分布式查询”,需要数据库引擎的支持。在 MySQL 中,这可以帮助您:http://dev.mysql.com/tech-resources/articles/mysql-federated-storage.html (从 5.0 开始可用)。在 Oracle 中,这称为“数据库链接”,正如 Shiv Kumar 所说,在 MS SQL 中称为“链接服务器”。 联邦引擎的缺点之一是它需要您创建一个表来镜像“远程”表,而其他数据库只是让您在建立到远程服务器的链接后访问远程表,而不必在中保留声明同步。并且远程数据库必须是另一个MySQL数据库(其他引擎支持针对以太坊服务器的分布式查询)。

关于mysql - SQL查询多个系统上的相同表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5089873/

相关文章:

php - 验证用户名和密码的最快方法 PHP - MySQL - MySQLi - PDO - 准备好的语句

PHP 无法识别 Mysql 值

mysql - 更新sphinx RT索引

php - SQL删除重复行在字段中找到相同的文本

php - 如何将mysql改为mysqli?

mysql - 如何优化大表 JOIN 查询的性能

delphi - 修改VCL组件代码

delphi - 如何在TJvTreeView中一次移动多个节点?

delphi - 跨 DLL 边界共享 ADO 连接

php - 显示来自内部联接的名称