我创建了一个 SQL SELECT 来获取架构中的所有枚举及其值:
SELECT
t.typname, array_agg(e.enumlabel)
FROM pg_type t
JOIN pg_enum e ON t.oid = e.enumtypid
JOIN pg_namespace n ON t.typnamespace = n.oid
WHERE t.typtype = 'e' AND n.nspname = 'public'
GROUP BY typname
我已将选择放入视图中,因此每次我想调用它时都不必编写它。唯一困扰我的是,如果我重命名架构或在另一个架构中使用它,我必须手动重写架构的名称,请检查代码的第 6 行:
WHERE t.typtype = 'e' AND n.nspname = 'public'
公众在那里是硬排版的。在 postgres 中选择时,是否有一个“全局”变量说明您从哪个模式中选择?我找不到任何东西。
谢谢
PS:我使用postgres 8.4