PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Изберете (извлечете) всички записи от множество схеми с помощта на Postgres

Снаследяване както спомена @Denis, това би било много просто. Работи и за Postgres 8.4. Не забравяйте да вземете предвид ограниченията .

По принцип ще имате главна таблица, предполагам в главна схема:

CREATE TABLE master.product (title text);

И всички останали таблици в различни схеми наследяват от него, евентуално добавяне на още локални колони:

CREATE TABLE a.product (product_id serial PRIMARY KEY, col2 text)
INHERITS (master.product);

CREATE TABLE b.product (product_id serial PRIMARY KEY, col2 text, col3 text)
INHERITS (master.product);

и др.

Не е необходимо таблиците да споделят едно и също име или схема.
След това можете да запитвате всички таблици с един замах:

SELECT title, tableoid::regclass::text AS source
FROM   master.product
WHERE  title ILIKE '%test%';

tableoid::regclass::text ?
Това е удобен начин да посочите източника на всеки ред. Подробности:

  • Разберете коя схема въз основа на стойностите на таблицата

SQL Fiddle.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails автоматично присвояване на идентификатор, който вече съществува

  2. грешка при инсталиране на python pip psycopg2

  3. Използване на курсори за страници в PostgreSQL

  4. Как работи make_timestamptz() в PostgreSQL

  5. postgresql генерира последователност без празнина