获取枚举可以具有的所有值的SQL查询

Postgresql不久前获得了枚举支持

将myenum类型创建为枚举(
“值1”,
“价值2”,
);

如何通过查询获取枚举中指定的所有值

如果需要阵列,请执行以下操作:

选择枚举范围(NULL::myenum)

如果要为枚举中的每个项单独记录:

选择unnest(枚举范围(NULL::myenum))

补充资料

即使您的枚举不在默认架构中,此解决方案也能按预期工作。例如,将myenum替换为myschema.myenum

上述查询中返回的记录的数据类型将是myenum。根据您正在做的事情,您可能需要转换为文本。e、 g

选择unnest(枚举范围(NULL::myenum))::text

如果要指定列名,可以将附加为我的列名


感谢贾斯汀·欧姆指出了一些额外的技巧,我将这些技巧纳入了我的答案中

发表评论