仅在Postgres枚举存在时选择它

时间:2016-05-02 21:13:59

标签: postgresql

This question告诉我们如何检查Postgres中是否存在类型。我试着像这样使用它:

select
case when exists (select 1 from pg_type where typname = 'my_type')
then unnest(enum_range(NULL::my_type))
else null
end

不幸的是,Postgres并不是懒惰的,所以当类型不存在时,这会给我一个类型错误。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

如果你只想枚举一个类型的值,你可以从<script src="https://cdnjs.cloudflare.com/ajax/libs/xregexp/2.0.0/xregexp-all-min.js"></script>获得没有类型转换:

pg_enum