규모가 큰 서비스의 DB구조를 파악하려면 ERD랑 관련 산출물로는 부족할 때가 많다.
주로 오라클을 사용하다 PostgreSQL를 제대로 써보는 건 처음이라
자주 사용하던 코드조각을 변환해보았다.
1. 컬럼명 or 컬럼 코멘트로 테이블 찾기
/*[검색] 컬럼명 , 컬럼 코멘트*/
select
isc.table_schema,
isc.table_name,
isc.column_name,
col_description(a.attrelid, a.attnum) as column_comment,
case when character_maximum_length is null then data_type
else data_type || '(' || isc.character_maximum_length || ')'
end as data_type,
case when is_nullable = 'YES' then 'not null'
else 'null'
end as nullable
from
information_schema.columns isc
join pg_catalog.pg_attribute a
on a.attname = isc.column_name
and a.attrelid = (select oid
from pg_catalog.pg_class
where relname = isc.table_name
and relnamespace = (select oid
from pg_catalog.pg_namespace
where nspname = isc.table_schema))
where isc.column_name = '컬럼명'
-- where col_description(a.attrelid, a.attnum) like '%컬럼 코멘트%'
;
2.테이블명 or 테이블 코멘트로 찾기
/*[검색] 테이블명, 테이블 코멘트*/
select
ps.schemaname,
ps.relname,
pd.description
from pg_stat_user_tables ps
left join pg_description pd on ps.relid = pd.objoid
-- where ps.relname = '테이블명' --테이블명
where pd.description like '테이블 코멘트%' --테이블 코멘트
and pd.objsubid = 0 -- 1이상은 컬럼
;
💡이전에 작성한 오라클 버전
'SQL' 카테고리의 다른 글
[mysql] Enum 타입 사용의 장단점 및 대안 (0) | 2024.04.12 |
---|---|
[오라클] UPDATE 후 COMMIT한 쿼리 특정 시간대로 복구하기 (2) | 2022.09.14 |
[오라클] 테이블 백업 / 복사하기 (0) | 2022.08.26 |
[Oracle] 특정 컬럼이 존재하는 테이블, 뷰, 코멘트 찾기 (2) | 2022.05.12 |
[PostgresSQL] B테이블 조회 결과 A테이블에 UPDATE 하기 (0) | 2022.01.24 |