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

Schemadetails einer Tabelle in PostgreSQL abfragen?

Es geht viel einfacher Weg in PostgreSQL, um den Typ einer Spalte zu erhalten.

SELECT pg_typeof(col)::text FROM tbl LIMIT 1

Die Tabelle muss natürlich mindestens eine Zeile enthalten. Und Sie erhalten nur den Basistyp ohne Typmodifikatoren (falls vorhanden). Verwenden Sie die unten stehende Alternative, wenn Sie das auch brauchen.
Sie können die Funktion auch für Konstanten verwenden. Das Handbuch auf pg_typeof() .

Für eine leere (oder beliebige) Tabelle können Sie den Systemkatalog pg_attribute abfragen um die vollständige Liste der Spalten und ihres jeweiligen Typs in der Reihenfolge zu erhalten:

SELECT attnum, attname AS column, format_type(atttypid, atttypmod) AS type
FROM   pg_attribute
WHERE  attrelid = 'myschema.mytbl'::regclass   -- optionally schema-qualified
AND    NOT attisdropped
AND    attnum > 0
ORDER  BY attnum;

Das Handbuch zu format_type() und auf Objektkennungstypen wie regclass .