저랑 같은 작업을 하시나 보내요.
참고로 제가 만든 쿼리 입니다.
select a.attname as 필드명,
case when a.attlen = /1 then
case when b.typname = 'text' then
'text'
else b.typname || '(' || text(a.atttypmod / 4) || ')'
end
else b.typname
end as 자료형,
case when a.attnotnull = 't' then 'not null '
else ''::text
end ||
case when a.atthasdef = 't'
then 'default ' ||
(select adsrc from pg_attrdef
where adrelid =
(select oid from pg_class where relname = '$t')
and adnum = a.attnum)
else ''
end as 수식어
from pg_attribute a, pg_type b
where a.attrelid = (select oid from pg_class where relname = '$t')
and a.atttypid = b.oid
and a.attnum > 0 order by a.attnum
/////
$t 이놈이 테이블 이름입니다.
몇몇 자료형 처리에 어떻게 보일지는 모르겠지만, 대부분의 테이블 스키마는
psql의 \d tablename 과 동일할겝니다.
요즘 느끼는 거지만, pg_ 테이블의 공부가 곧 postgres를 깊게 공부하는
좋은 방법인것같습니다.
|