"Datentypen" in PostgreSQL enthält tatsächlich primitives (built-in) -Typen, durch Erweiterungen hinzugefügt Typen, benutzerdefinierte Verbundtypen, Domänen und Tabelle rowtypes. Es ist nicht klar, welche davon für Sie von Interesse sind. Alle in einer bestimmten Datenbank verfügbaren Typen sind in der Datenbank pg_catalog.pg_type
aufgeführt. Daher müssen Sie möglicherweise die Ergebnisse filtern. Siehe the documentation for the pg_type
system catalog table.
Typen für verfügbare, aber nicht installierte Erweiterungen sind nicht aufgeführt. Es gibt keine Möglichkeit, Typen aufzulisten, die von Erweiterungen bereitgestellt werden, die nicht in der aktuellen Datenbank installiert sind.
Um eine schönere Liste von Typen zu erhalten, verwenden Sie psql
's \dT *
Befehl. Sie können die zugrunde liegende SQL sehen dies durch psql
mit der -E
Flagge läuft ausführt:
$ psql -E regress
regress=> \dT *
********* QUERY **********
SELECT n.nspname as "Schema",
pg_catalog.format_type(t.oid, NULL) AS "Name",
pg_catalog.obj_description(t.oid, 'pg_type') as "Description"
FROM pg_catalog.pg_type t
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace
WHERE (t.typrelid = 0 OR (SELECT c.relkind = 'c' FROM pg_catalog.pg_class c WHERE c.oid = t.typrelid))
AND NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type el WHERE el.oid = t.typelem AND el.typarray = t.oid)
AND pg_catalog.pg_type_is_visible(t.oid)
ORDER BY 1, 2;
**************************
tun Sie alle Arten in Ihrem speziellen db auflisten möchten, oder alle Datentypen, die in Postgres verfügbar sind? – Borys