2010-08-23 2 views
1

У меня есть база данных, каждая из которых имеет схему.postgresql запрос по нескольким схемам

Есть ли способ запросить таблицу в каждой схеме?

Что-то вроде: select id, name from *.simulation не работает ...

Спасибо за вашу помощь!

+0

больше деталей: результат должен быть что-то вроде «выберите идентификатор, имя из user1.simulation союза выберите идентификатор, название от user2.simulation союза ...» –

ответ

3

Нет, вам нужно будет написать функцию - либо функцию на стороне сервера, либо функцию на стороне клиента на любом языке, который вы используете, - который выполняет запрос один раз для каждой схемы.

Вы также можете создать ПРОСМОТР, который делает UNION ALL между всеми схемами, но это будет большой объем работы по поддержанию динамического добавления и удаления ваших схем.

+0

Спасибо, я пытаюсь написать хранимую процедура, с некоторыми трудностями ... (Еще один вопрос: http://stackoverflow.com/questions/3546488/postgresql-stored-procedure-with-querie-on-several-schema) –

0

Да, вы можете использовать SET search_path TO ..., чтобы указать на все схемы. Если вы не знаете все имена схем, оберните его в функцию, которая сначала выбирает все схемы, а затем задает весь путь search_path.

http://www.postgresql.org/docs/current/interactive/sql-set.html

+0

Это все равно только даст вам таблицу из первая указанная схема, в которой указан один из них, причем не все из них сразу. –

+0

Ты прав, забыл эту деталь ... :( –

Смежные вопросы