我想从PostgreSQL特定架构中导出数据类型。问题是,目前我发现只是一种导出整个模式而不仅仅是数据类型的方法。 该模式有超过2000个表,我不需要这一切。 有没有办法导出JUST自定义数据类型?
答案 0 :(得分:1)
这将为您提供可用数据类型的列表 - 对于您可能需要按第一列(nspname)过滤的自定义数据类型:
SELECT n.nspname, typname, pg_catalog.format_type(t.oid, NULL) AS typefull
FROM pg_catalog.pg_type t
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = t.typnamespace
WHERE (t.typrelid = 0 OR (SELECT c.relkind = 'c' FROM pg_catalog.pg_class c WHERE c.oid = t.typrelid)) AND
NOT EXISTS(SELECT 1 FROM pg_catalog.pg_type el WHERE el.oid = t.typelem AND el.typarray = t.oid) AND
pg_catalog.pg_type_is_visible(t.oid)
答案 1 :(得分:0)
不确定这是否是您的想法:
select
data_type, count (*)
from information_schema.columns
where
table_schema = 'my_schema'
group by
data_type
如果仅通过自定义类型表示用户定义,那么我认为您希望将udt_name替换为用户定义的类型:
select
udt_name, count (*)
from information_schema.columns
where
table_schema = 'my_schema' and
data_type = 'USER-DEFINED'
group by
udt_name