2016-08-23 64 views
1

我想從PostgreSQL特定模式導出數據類型。問題是,現在我發現了一種導出整個模式的方法,而不僅僅是數據類型。 該模式有超過2000個表,並且我不需要所有這些。 有沒有辦法導出JUST自定義數據類型?從PostgreSQL模式導出數據類型

回答

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) 
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 
相關問題