2016-08-23 2 views
1

PostgreSQL 관련 스키마에서 데이터 유형을 내보내고 싶습니다. 문제는 지금은 데이터 유형뿐만 아니라 스키마 전체를 내보내는 방법을 찾았습니다. 스키마에 2000 개가 넘는 테이블이 있으며이 모든 것이 필요하지 않습니다. 사용자 지정 데이터 형식 만 내보내는 방법이 있습니까?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 
관련 문제