SQL-запрос к идентичной таблице в нескольких системах - PullRequest
1 голос
/ 23 февраля 2011

Обзор приложения:
У меня есть приложение Delphi, которое позволяет пользователю выполнять запросы к базам данных MySQL в разных системах, используя компонент TADOQuery для извлечения данных.Пользователь может извлечь данные из идентичных таблиц в двух разных системах (например, table_xyz в database_abc в system1 и system 2), выполнив два отдельных запроса, а затем два набора данных записываются в файл и вручную объединяются на ПК, чтобы сформировать одинreport.

Вопрос:
Возможно ли выбрать данные из одной и той же таблицы / базы данных в разных системах одним запросом?Я вполне уверен, что это невозможно из-за ограничения строки подключения TADOQuery, указывающей на одну систему, но я хочу убедиться, что это правильно.

Я знаю, что это возможночтобы получить данные из двух идентичных таблиц в двух разных базах данных в одной и той же системе с помощью оператора UNION, например:
select * from database1.table_xyz UNION select * from database2.table_xyz

То, что мне нужно сделать, аналогично приведенному выше примеру, только получение данныхиз баз данных, которые находятся в разных системах.В принципе, возможно ли каким-то образом включить строку соединения в оператор SQL или каким-либо другим способом соединиться?

Как я уже сказал, я уверен, что это невозможно, но это не такбольно проверять!

1 Ответ

2 голосов
/ 23 февраля 2011

Это называется «распределенные запросы» и требует поддержки ядра СУБД.В MySQL это может вам помочь: http://dev.mysql.com/tech-resources/articles/mysql-federated-storage.html (доступно начиная с версии 5.0).В Oracle это называется «ссылки на базы данных» и, как сказал Шив Кумар, в MS SQL - «связанные серверы».Одним из недостатков механизма федерации является необходимость создания таблицы, которая отражает «удаленную», в то время как другие базы данных просто позволяют получить доступ к удаленной таблице после установления ссылки на удаленный сервер без необходимости сохранять объявления всинхронизации.Также удаленная база данных должна быть другой базой данных MySQL (другие механизмы поддерживают распределенные запросы к этерогенным серверам).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...