Si lo que desea es el nombre completo (nombre del tipo y el esquema) y una lista ordenada de todos los enum
etiquetas, esta consulta va a hacer:
SELECT n.nspname AS "schema", t.typname
, string_agg(e.enumlabel, '|' ORDER BY e.enumsortorder) AS enum_labels
FROM pg_catalog.pg_type t
JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace
JOIN pg_catalog.pg_enum e ON t.oid = e.enumtypid
WHERE t.typname = 'my_enum_type'
GROUP BY 1,2;
devoluciones:
schema | typname | enum_labels
--------+--------------+-------------
public | my_enum_type | foo|bar
string_agg()
requiere Postgres 9.0 o posterior, reemplace con array_agg()
para versiones anteriores.
Para obtener el CREATE
instrucción SQL, puede utilizar pg_dump
y mirar el archivo de volcado.
O, de forma más práctica, use pgAdmin que muestra scripts SQL creados por ingeniería inversa para cualquier objeto en la base de datos. Selecciónelo en el object browser
y su script de creación se muestra en el SQL pane
. Incluso hay una opción para copiar el script a una ventana recién abierta del SQL editor
automáticamente, donde puede editarlo y ejecutarlo.
No entiendo la relevancia de "Utiliza \ dD para dominios". –
Los dominios y los tipos son cosas diferentes. Utiliza \ dD para dominios y \ dT para tipos. –
Ok, ya veo. "Un dominio es esencialmente un tipo de datos con restricciones opcionales (restricciones en el conjunto de valores permitido)". –