Lists: | Postg윈 토토SQL : Postg윈 |
---|
From: | Martin Spott <Martin(dot)Spott(at)mgras(dot)net> |
---|---|
To: | pgsql-de-allgemein(at)postgresql(dot)org |
Subject: | Testen, ob Spalte vorhanden ist |
Date: | 2006-05-31 22:39:38 |
Message-ID: | e5l5vaose5l5va$16os$1@osprey.mgras.de@osprey.mgras.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
Tach zusammen,
um fuer einen Kopier-Job von einer Tabelle in 'ne andere Tabelle
festzustellen, ob in der Zieltabelle eine bestimmte Spalte "nam"
vorhanden ist, bemuehe ich folgendes Konstrukt - welches mir
genaugenommen die Anzahl an Spalten mit dem Bezeichner "nam"
zurueckliefert, logischerweise also Null oder Eins:
=> select count(pg_class.relname) from pg_class, pg_attribute
where pg_attribute.attname = 'nam'
and pg_class.oid = pg_attribute.attrelid
and pg_class.relname = '<Zieltabelle>';
Dann weiss ich sicher, ob ich die Spalte "nam" mitkopieren darf oder
nicht - geht das eigentlich auch einfacher ? :-)
Es geht mir nicht um die Laufzeit des Konstruktes, das wird nur alle
paar Jahrhunderte aufgerufen. Vielmehr frage ich mich, ob es sowas
schon vorgefertigt gibt - vielleicht in einer Form, die nicht
ausschliesslich auf unserer bevorzuten DB laeuft.
Tschuess,
Martin.
--
Unix _IS_ user friendly - it's just selective about who its friends are !
--------------------------------------------------------------------------
From: | Andreas Seltenreich <andreas+pg(at)gate450(dot)dyndns(dot)org> |
---|---|
To: | pgsql-de-allgemein(at)postgresql(dot)org |
Subject: | Re: Testen, ob Spalte vorhanden ist |
Date: | 2006-05-31 23:57:16 |
Message-ID: | 871wu96943.fsf@gate450.dyndns.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | Postg윈 토토SQL : Postg윈 |
Martin Spott schrob:
> => select count(pg_class.relname) from pg_class, pg_attribute
> where pg_attribute.attname = 'nam'
> and pg_class.oid = pg_attribute.attrelid
> and pg_class.relname = '<Zieltabelle>';
>
>
> Dann weiss ich sicher, ob ich die Spalte "nam" mitkopieren darf oder
> nicht - geht das eigentlich auch einfacher ? :-)
Ja, mit der Sicht information_schema.columns:
<http://www.postgresql.org/docs/8.1/static/information-schema.html>
> Es geht mir nicht um die Laufzeit des Konstruktes, das wird nur alle
> paar Jahrhunderte aufgerufen. Vielmehr frage ich mich, ob es sowas
> schon vorgefertigt gibt - vielleicht in einer Form, die nicht
> ausschliesslich auf unserer bevorzuten DB laeuft.
Das information_schema ist AFAIR seit 1999 im SQL-Standard.
Gruß
Andreas
From: | Martin Spott <Martin(dot)Spott(at)mgras(dot)net> |
---|---|
To: | pgsql-de-allgemein(at)postgresql(dot)org |
Subject: | Re: Testen, ob Spalte vorhanden ist |
Date: | 2006-06-01 05:43:02 |
Message-ID: | e5lup6iqe5lup6$12iq$1@osprey.mgras.de@osprey.mgras.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-de-allgemein |
Andreas Seltenreich wrote:
> Martin Spott schrob:
>> Dann weiss ich sicher, ob ich die Spalte "nam" mitkopieren darf oder
>> nicht - geht das eigentlich auch einfacher ? :-)
>
> Ja, mit der Sicht information_schema.columns:
>
> <http://www.postgresql.org/docs/8.1/static/information-schema.html>
[...]
> Das information_schema ist AFAIR seit 1999 im SQL-Standard.
Vielen Dank fuer die Idee, genau sowas suchte ich - sieht zwar nicht so
'spannend' aus wie mein Eigengewaechs, aber irgendwie angenehmer ;-)
Tschuess,
Martin.
--
Unix _IS_ user friendly - it's just selective about who its friends are !
--------------------------------------------------------------------------