从PostgreSQL架构导出数据类型

时间:2016-08-23 19:37:09

标签: postgresql dump

我想从PostgreSQL特定架构中导出数据类型。问题是,目前我发现只是一种导出整个模式而不仅仅是数据类型的方法。 该模式有超过2000个表,我不需要这一切。 有没有办法导出JUST自定义数据类型?

2 个答案:

答案 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