Med arv som @Denis nämnde, detta skulle vara väldigt enkelt. Fungerar för Postgres 8.4 också. Var noga med att överväga begränsningarna .
I grund och botten skulle du ha en huvudtabell, antar jag i ett huvudschema:
CREATE TABLE master.product (title text);
Och alla andra tabeller i olika scheman ärver från den, eventuellt lägga till fler lokala kolumner:
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);
etc.
Tabellerna behöver inte dela samma namn eller schema.
Då kan du fråga alla tabeller i ett enda svep:
SELECT title, tableoid::regclass::text AS source
FROM master.product
WHERE title ILIKE '%test%';
tableoid::regclass::text
?
Det är ett praktiskt sätt att berätta källan för varje rad. Detaljer:
- Ta reda på vilket schema baserat på tabellvärden
SQL-fiol.