In einer Datenbank nach Spaltennamen suchen

Hallo,
seit neuestem befasse ich mich mit Postgres. In meinem job geht es u.a. um die Pflege und Erweiterung eines PostgreSQL-Systems.
Frage: Ist es in einer pg-DB möglich, nach Spaltennamen zu suchen?


Gruß, bolshi

Du willst wissen, ob ein bestimmter Name als Bezeichnung für eine Spalte irgend einer Tabelle verwendet wird? Ja, guggst Du information_schema.columns.

Andreas

Wo finde ich die information_schema.columns?

Wo finde ich die information_schema.columns?

Ich würd mal in der DB nachgucken

select * from information_schema.columns

nick information_schema ist dafür das Tool der Wahl.

Darf ich fragen, warum genau du diese Information in einer Anwendung benötigst?

Danke. Dennoch wird das gewünschte Ergebnis nicht ausgegeben. Unter Schemata existieren eine Vielzahl verschiedener Schemen. In phpPgAdmin auf der Schemata-Ebene per SQL-Fenster und habe folgende Query probiert:

select system_attribut_id from information_schema.columns

Matcht nicht, obwohl die Spalte in einem Schema existiert. Hab ich was falsch verstanden?

Gruß, bolshi

Ja.

Schon mal die Fehlermeldung, die kam.

ERROR:  column "system_attribut_id" does not exist
LINE 1: select system_attribut_id  from information_schema.columns

Vielleicht suchst Du ja schlicht:

select table_schema, table_name from information_schema.columns where column_name='system_attribut_id';

Btw.: tut tas Not, daß Dein phpPgAdmin worldwide lauscht?



Andreas

Copy and paste macht nicht immer Sinn. Meinen Nachteil beim Nutzen deiner Query sehe ich darin, dass ich momentan noch nicht weiß, welche Spalte in welcher Tabelle in welchem Schema liegt. Da bleibt’s dann wohl doch beim schrittweisen manuellen Vorgehen.

bolshi

Warum weißt du das nicht? Oder um meine Eingangsfrage zu wiederholen: Was willst du erreichen, was machst du da genau?

Deine Eingangsfrage war, ob man rausbekommen kann, ob irgend eine Tabelle einen bestimmten, Dir bekannten Spaltennamen nutzt. Dafür passend habe ich Dir die Lösung serviert. Du solltest anfangen, die Antworten zu lesen und versuchen, sie zu verstehen.

Andreas