Postgresql recibió soporte de enumeración hace algún tiempo.
CREATE TYPE myenum AS ENUM (
'value1',
'value2',
);
¿Cómo obtengo todos los valores especificados en la enumeración con una consulta?
postgresql
enums
Wienczny
fuente
fuente
Respuestas:
Si quieres una matriz:
Si desea un registro separado para cada elemento de la enumeración:
Información Adicional
Esta solución funciona como se esperaba, incluso si su enumeración no está en el esquema predeterminado. Por ejemplo, reemplace
myenum
conmyschema.myenum
.El tipo de datos de los registros devueltos en la consulta anterior será
myenum
. Dependiendo de lo que esté haciendo, es posible que deba enviarlo al texto. p.ejSi desea especificar el nombre de la columna, puede agregarlo
AS my_col_name
.Gracias a Justin Ohms por señalar algunos consejos adicionales, que incorporé a mi respuesta.
fuente
NULL::
?SELECT enum_range(myenum)
? ¿Cuál es el significado de fundiciónnull
?Tratar:
fuente
ORDER BY e.enumsortorder
a la consulta. Los valores enumerados probablemente estarán fuera de orden si se insertaron nuevos valores en el tipo de enumeración usandoBEFORE
oAFTER
.Esto devolverá un conjunto de resultados de una sola columna del contenido de la enumeración "your_enum" con una columna llamada "your_column" de tipo texto.
fuente
Puede obtener todos los valores de enumeración para una enumeración utilizando la siguiente consulta. La consulta también le permite elegir en qué espacio de nombres vive la enumeración (lo cual es necesario si la enumeración se define en múltiples espacios de nombres; de lo contrario, puede omitir esa parte de la consulta).
fuente