"tipi di dati" in PostgreSQL include effettivamente tipi primitivi (built-in), tipi aggiunti da estensioni, tipi composti definiti dall'utente, domini e rowtypes tavola. Non è chiaro quali di questi siano di tuo interesse. Tutti i tipi disponibili in un determinato database sono elencati in tale database pg_catalog.pg_type
quindi potrebbe essere necessario filtrare i risultati. Vedi the documentation for the pg_type
system catalog table.
I tipi di estensioni disponibili ma non installate sono non nell'elenco. Non c'è modo di elencare i tipi forniti da estensioni non installate nel database corrente.
Per ottenere un elenco di tipi più carini, utilizzare il comando psql
\dT *
. Si può vedere l'SQL sottostante questo esegue eseguendo psql
con il flag -E
:
$ 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;
**************************
fonte
2013-05-03 00:04:37
vuoi elencare tutti i tipi di vostra particolare db, o tutti i tipi di dati che sono disponibili in Postgres? – Borys