PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Alle Datensätze aus mehreren Schemas mit Postgres auswählen (abrufen).

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.