Postgresql 前段时间获得了枚举支持。
CREATE TYPE myenum AS ENUM ( 'value1', 'value2', );
如何通过查询获取枚举中指定的所有值?
如果你想要一个数组:
SELECT enum_range(NULL::myenum)
如果您想为枚举中的每个项目单独记录:
SELECT unnest(enum_range(NULL::myenum))
即使您的枚举不在默认架构中,此解决方案也会按预期工作。例如,替换myenum为myschema.myenum。
myenum
myschema.myenum
上述查询中返回记录的数据类型将为myenum. 根据您的操作,您可能需要转换为文本。例如
SELECT unnest(enum_range(NULL::myenum))::text
如果要指定列名,可以附加AS my_col_name.
AS my_col_name
感谢 Justin Ohms 指出了一些额外的提示,我将这些提示纳入了我的回答中。