Comment lister les tyopes enum utilisé dans ma base de données, dans quel schéma sont-ils définis et qsuelles sont les valeurs de leurs différenst éléments ?
Avec PostgreSQL 9.x :
SELECT nspname AS schema, typname AS nom , string_agg(enumlabel::text, ', '::text) AS definition FROM pg_enum JOIN pg_type ON enumtypid = pg_type.oid JOIN pg_namespace ON pg_type.typnamespace = pg_namespace.oid WHERE typcategory = 'E' GROUP BY nspname, typname ORDER BY 1,2
Avec PostgreSQL 8.5 :
SELECT nspname AS schema, typname AS nom , array_to_string(array_agg(enumlabel::text),', ') AS definition FROM pg_enum JOIN pg_type ON enumtypid = pg_type.oid JOIN pg_namespace ON pg_type.typnamespace = pg_namespace.oid WHERE typcategory = 'E' GROUP BY nspname, typname ORDER BY 1,2