У меня есть база данных PostgreSQL с некоторыми схемами, как показано ниже:Выберите (восстановить) все записи из нескольких схем с использованием Postgres
My_Database
|-> Schemas
|-> AccountA
|-> AccountB
|-> AccountC
|-> AccountD
|-> AccountE
.
.
.
|-> AccountZ
Все схемы имеет таблицу с именем product
, который имеет столбец под названием title
. Я хотел бы знать, возможно ли выполнить оператор select для извлечения всех записей из всех схем с определенным условным.
Единственный способ, которым я нашел до сих пор, - запустить учетную запись запроса по учетной записи, как показано ниже.
SET search_path TO AccountA;
SELECT title FROM product WHERE title ILIKE '%test%';
Schemas создаются динамически, так что я не знаю их имен или сколько из них существует.
без использования системных таблиц, чтобы получить список схем, принявшего эту таблицу, а затем с помощью динамического SQL, чтобы создать союз между всеми запросами. Я не думаю, что это можно сделать ... и это, конечно, не будет быстрым. – xQbert
Чтобы завершить это, вам понадобится динамический SQL, и это будет непросто сделать.Эта схема ужасна, любая воля для нормализации этого? Одна таблица со всеми учетными записями намного лучше, чем схема для каждой учетной записи ... до такой степени, что вы, похоже, сильно искалечены этой настройкой. – Twelfth
Обратите внимание, что схема представляет собой базу данных, а не таблицу. У вас есть одна схема (Моя база данных) с большим количеством таблиц. –