Снаследяване както спомена @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.