2016-05-02 10 views
0

This questionは、タイプがPostgresに存在するかどうかをチェックする方法を示します。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は怠け者ではありませんので、タイプが存在しない場合、これは私のタイプのエラーを与える:私はこのようにそれを使用しようとしました。これどうやってするの?あなただけのタイプの値を列挙したい場合は、型キャストなしpg_enumから取得することができます

+0

http://stackoverflow.com/q/9540681/330315 –

答えて

1

SELECT 
    T.typname, 
    E.enumlabel, 
    E.enumsortorder 
FROM 
    pg_enum E 
    INNER JOIN pg_type T ON (E.enumtypid = T.oid) 
WHERE 
    T.typname = 'my_type' 
; 
関連する問題