Background Image
질의작성
2017.08.04 00:18

테이블 명세서 쿼리

조회 수 3137 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

 

SELECT

        c.class_name AS tbl_nm,

        a.attr_name AS attr_nm,

        CONCAT(

        CASE WHEN t.type_name = 'STRING'

                       THEN 'VARCHAR'

                       ELSE t.type_name

        END,

        CASE WHEN t.type_name = 'NUMERIC'

               THEN CONCAT('(', REPLACE(FORMAT(d.prec, 0), ',', ''), ', ', REPLACE(FORMAT(d.scale, 0), ',', ''), ')')

               WHEN t.type_name = 'ENUM'

               THEN ''--CAST(d.enumeration AS VARCHAR)

               /* ENUM 컬럼의 선언 부를 VARCHAR 로 변환 안됨 사후 처리 필요 */

               ELSE CONCAT('(', REPLACE(FORMAT(d.prec, 0), ',', ''), ')')

        END) AS attr_def,

        CASE    WHEN a.is_nullable = 1

                       THEN 'Y'

                       ELSE ''

        END AS attr_null,

        /* 9.x 하위 버전 */

        IF(a.data_type IN (4, 25, 26, 27, 35),

               SUBSTRING_INDEX((SELECT coll_name FROM _db_collation coll WHERE coll.coll_id = [d].[code_set]),'_',1),'') AS attr_char,

        IF(a.data_type IN (4, 25, 26, 27, 35),

               (SELECT coll_name FROM _db_collation coll WHERE coll.coll_id = [d].[code_set]),'') AS attr_coll,

        /* 10.x 전용 쿼리 */

--      IF(a.data_type IN (4, 25, 26, 27, 35),

--             (SELECT ch.charset_name FROM _db_charset ch WHERE d.code_set = ch.charset_id), '') AS attr_charset,

--      IF(a.data_type IN (4, 25, 26, 27, 35),

--             (SELECT coll.coll_name FROM _db_collation coll WHERE d.collation_id = coll.coll_id), '') AS attr_collation,

        a.default_value,

        /* 9.x 하위 버전 */

        (SELECT [description] FROM _cub_schema_comments cmt WHERE cmt.table_name = c.class_name AND cmt.column_name = a.attr_name) AS col_cmt,

        /* 10.x 전용 쿼리 */

--      a.comment,

        FORMAT(

        CASE WHEN t.type_name = 'SHORT' THEN 2.0

                       WHEN t.type_name = 'INTEGER' THEN 4.0

                       WHEN t.type_name = 'BIGINT' THEN 8.0

                       WHEN t.type_name = 'NUMERIC' THEN 16.0

                       WHEN t.type_name = 'FLOAT' THEN 4.0

                       WHEN t.type_name = 'DOUBLE' THEN 8.0

                       WHEN t.type_name = 'MONETARY' THEN 12.0

                       WHEN t.type_name IN ('CHAR', 'STRING', 'VARCHAR') THEN d.prec

                       WHEN t.type_name IN ('TIMESTAMP','TIMESTAMPLTZ') THEN 4.0

                       WHEN t.type_name = 'DATE' THEN 4.0

                       WHEN t.type_name = 'TIME' THEN 4.0

                       WHEN t.type_name IN ('DATETIME','DATETIMELTZ','TIMESTAMPTZ') THEN 8.0

                       WHEN t.type_name = 'DATETIMETZ' THEN 12.0

                       WHEN t.type_name = 'BIT' THEN FLOOR(d.prec / 8.0)

                       WHEN t.type_name = 'BIT VARYING' THEN FLOOR(d.prec / 8.0)

               ELSE 0

        END, 0) || ' Byte' AS attr_byte

FROM

        _db_class c,

        _db_attribute a,

        _db_domain d,

        _db_data_type t

WHERE

        a.class_of = c

        AND d.object_of = a

        AND d.data_type = t.type_id

        AND c.is_system_class = 0

        AND c.class_name = 'a'

ORDER BY

        c.class_name,

        a.def_order

  • ?
    덴드로비움 2017.09.09 15:49

    정말 잘 사용하고 있습니다.
    요기에 _db_index, db_index_key 를 포함시켜서 PK, FK 까지 YES,no 로 뽑을려고 하니 잘안되네요 ㅠㅠ
    방법이 없을까요?


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
77 운영관리 CUBRID 브로커와 시스템 메모리 정만영 2019.03.12 2314
76 운영관리 윈도우 OS에서 java sp 사용 시 Java VM is not running 해결 방법 정훈 2017.09.04 2204
75 운영관리 CUBRID 8.2.2 ~ 8.4.x 버전에서 'ALTER SERIAL ... CACHE <cached_num> / NOCACHE' ERROR 해결 방법 주영진 2017.03.08 2146
74 운영관리 큐브리드 포트 정리 정만영 2016.07.05 6062
73 운영관리 큐브리드 마스터 소켓 디렉토리 변경방법 정만영 2016.07.05 4212
72 운영관리 Invalid XASL tree node content 에러 손승일 2016.04.26 4469
71 운영관리 산술 연산 결과를 피젯수 또는 젯수의 자리 수에 맞춰 보자. 성진 2016.03.01 4805
70 운영관리 'Has been interrupted.' CUBRIDException 발생 주현 2016.01.07 6564
69 운영관리 CUBRID BACKUP (linux, window) file 박동윤 2015.12.30 6218
68 운영관리 브로커와 DB 간 연결 테스트 박동윤 2015.12.29 4924
67 운영관리 cubrid plandump ( plan cache정보확인) file 주현 2015.12.29 4292
66 운영관리 시스템 부하가 많지 않음에도 불구하고 질의 수행이 느린 경우 THP 기능 설정 확인 및 해제 진우진 2015.12.16 7507
65 운영관리 큐브리드 서비스 재구동 시 cubrid manager server start: fail 오류 해결 방법 진우진 2015.12.16 7691
64 운영관리 브로커 동적 파라미터 변경 방법 정만영 2015.08.13 7555
63 운영관리 CUBRID HA 구성 후 구동중인 slave/replica node에서 write 하기 정만영 2015.07.15 9032
62 운영관리 windows 환경에서 압축파일로 CUBRID 설치시 환경변수 쉽게 설정하기 김승훈 2015.07.02 6990
61 운영관리 디비와 테이블 문자셋이 다른 경우 처리 방법 이용미 2015.06.03 15781
60 운영관리 CUBRID HA와 Primary key 제약조건 정만영 2015.04.21 11342
59 운영관리 테이블 사용량 확인방법 정만영 2015.02.03 11418
58 운영관리 9.2 버전에서 복제 재구축(ha_make_slavedb.sh) 스크립트를 사용하려면 수정해야 할 부분 brightest 2013.10.24 12228
Board Pagination Prev 1 2 3 4 Next
/ 4

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales