ВЫБОР нескольких баз данных DB2 в одном запросе - PullRequest
2 голосов
/ 29 марта 2011

Я столкнулся с проблемой, когда мне нужно запросить 2 отдельные базы данных (один и тот же экземпляр) в одном запросе.
Я привык делать это с MySQL, но я не уверен, как это сделать с DB2.

В mySQL это будет что-то вроде:

SELECT  user_info.*, game.*   
FROM user_info, second_db.game_stats as game   
WHERE user_info.uid = game.uid

Итак, вопрос в том, как я могу перевести такой запрос в синтаксис DB2?

Эквивалент это

1 Ответ

5 голосов
/ 29 марта 2011

Есть ли причина, по которой у вас есть таблицы в отдельной базе данных?MySQL не поддерживает концепцию схем, потому что в MySQL «схема» - это то же самое, что и «база данных».В DB2 схема - это просто набор именованных объектов, позволяющий группировать их вместе.

В DB2 одна база данных гораздо ближе ко всему серверу MySQL, поскольку каждая база данных DB2 может иметь несколько схем.При наличии нескольких схем в одной базе данных ваш запрос может выполняться более или менее без изменений по сравнению с тем, как он написан.

Однако, если у вас действительно есть две отдельные базы данных DB2 (и по какой-то причине вы не хотитеперенести в одну базу данных с несколькими схемами): это можно сделать, определив псевдоним в первой базе данных.

Для этого требуется несколько запутанный процесс определения оболочки (CREATE WRAPPER), сервера (CREATE SERVER), сопоставления пользователей (CREATE USER MAPPING) и, наконец, псевдонима (CREATE NICKNAME).Как правило, эти задачи проще всего выполнить с помощью графического интерфейса Центра управления, поскольку он поможет вам определить каждый из них.

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