Mit Vererbung wie @Denis erwähnt, wäre dies sehr einfach. Funktioniert auch für Postgres 8.4. Beachten Sie unbedingt die Einschränkungen .
Grundsätzlich hätten Sie eine Master-Tabelle, nehme ich an, in einem Master-Schema:
CREATE TABLE master.product (title text);
Und alle anderen Tabellen in diversen Schemata erben daraus, eventuell weitere lokale Spalten hinzufügen:
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);
usw.
Die Tabellen müssen nicht denselben Namen oder dasselbe Schema haben.
Dann können Sie alle Tabellen abfragen auf einen Schlag:
SELECT title, tableoid::regclass::text AS source
FROM master.product
WHERE title ILIKE '%test%';
tableoid::regclass::text
?
Das ist eine praktische Methode, um die Quelle jeder Zeile zu ermitteln. Einzelheiten:
- Finden Sie heraus, welches Schema auf Tabellenwerten basiert
SQL-Geige.