Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- plan_table
- 유용한 표현
- filed
- 호출
- svn ignore
- eclipse pliugin
- WM_CONCAT
- TypeReference
- 유용한 코드
- JExcel
- 카멜룰
- 구동하기
- Marshalling
- New Project
- spring boot
- 인수배열
- window7
- BiffException
- json
- 로우병합
- mput
- put
- 유용한사용법
- Jackson
- XMLAGG
- unmashalling
- 초기데이터
- javascripts
- camel rule
- arguements
Archives
- Today
- Total
하루에 한가지
postgreSQL 에서 테이블 형상 scan 본문
-- 컬럼 정보 조회..
with info as (
select '%%' table_catalog
,'%%' table_schema
,'%' table_name
from dual
)
,t_cmmt as (
SELECT ps.schemaname as table_schema
,PS.RELNAME as table_name
,PD.DESCRIPTION AS TABLE_COMMENT
FROM PG_STAT_USER_TABLES PS
inner join PG_DESCRIPTION PD
on PS.RELID = PD.OBJOID
WHERE 1=1
and ps.schemaname = (select table_schema from info)
and PS.RELNAME like '%'||(select table_name from info)||'%'
AND PD.OBJSUBID = 0
)
,t_col as(
select tc.table_catalog
, tc.table_schema
, tc.table_name table_name
, tc.column_name column_name
, udt_name column_type
, character_maximum_length column_length
, ordinal_position column_position
from information_schema.columns tc
where 1=1
and tc.table_catalog = (select table_catalog from info)
and tc.table_schema = (select table_schema from info)
and tc.table_name like '%'||(select table_name from info)||'%'
)
,pk as (
select tcnst.constraint_catalog
,tcnst.table_schema
,tcnst.table_name
,ccu.column_name
from information_schema.TABLE_CONSTRAINTS tcnst
inner join information_schema.key_column_usage ccu
on tcnst.constraint_catalog = ccu.constraint_catalog
and tcnst.table_schema = ccu.table_schema
and tcnst.table_name = ccu.table_name
where tcnst.constraint_catalog = (select table_catalog from info)
and tcnst.table_schema = (select table_schema from info)
and tcnst.table_name like '%'||(select table_name from info)||'%'
and constraint_type = 'PRIMARY KEY'
)
,col_cmt as (
select schemaname
,relname table_name
,pd.objsubid posi
,description col_comment
from PG_DESCRIPTION PD
inner join PG_STAT_ALL_TABLES PS
on pd.objoid = PS.relid
where PS.schemaname = (select table_schema from info)
and ps.relname like '%'||(select table_name from info)||'%'
)
select t_cmmt.table_name
,t_cmmt.TABLE_COMMENT
,t_col.column_name
,t_col.column_type
,t_col.column_length leng
,t_col.column_position p
,case when pk.column_name is null then '' else 'Y' end pk
,col_cmt.col_comment
from t_cmmt
inner join t_col
on t_cmmt.table_schema =t_col.table_schema
and t_cmmt.table_name =t_col.table_name
left outer join pk
on t_col.table_schema =pk.table_schema
and t_col.table_name =pk.table_name
and t_col.column_name = pk.column_name
inner join col_cmt
on t_col.table_schema =col_cmt.schemaname
and t_col.table_name =col_cmt.table_name
and t_col.column_position = col_cmt.posi
order by 1,2, column_position'db > postgreSQL' 카테고리의 다른 글
| postgres 설치부터 ping (0) | 2019.10.25 |
|---|
Comments