1 2 3 4 5 6 7 | SELECT C.POSITION ,C.COLUMN_NAME FROM USER_CONS_COLUMNS C INNER JOIN USER_CONSTRAINTS S ON C.CONSTRAINT_NAME = S.CONSTRAINT_NAME AND S.CONSTRAINT_TYPE = 'P' WHERE C.TABLE_NAME = 'SKUWC' ORDER BY 1 | cs |
해당 테이블의 primary key(프라이머리 키)만 가져오는 쿼리랍니다.
이 쿼리를 응용해서 DB 상의 모든 테이블의 Primary Key만 뽑을수도 있겠죠.
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 31 32 33 34 35 36 37 38 39 40 41 | WITH LIST AS ( SELECT A.TABLE_NAME, A.COLUMN_NAME, A.DATA_TYPE, A.DATA_LENGTH, A.NULLABLE, B.COMMENTS FROM dba_tab_columns A, all_col_comments B WHERE A.OWNER = B.OWNER AND A.TABLE_NAME = B.TABLE_NAME AND A.COLUMN_NAME = B.COLUMN_NAME AND A.OWNER = 'LOTOSDEV' -- DB명 ), PKLIST AS ( SELECT C.TABLE_NAME, C.COLUMN_NAME, C.POSITION FROM USER_CONS_COLUMNS C, USER_CONSTRAINTS S WHERE C.CONSTRAINT_NAME = S.CONSTRAINT_NAME AND S.CONSTRAINT_TYPE = 'P' ) SELECT L.TABLE_NAME AS "테이블명", L.COLUMN_NAME AS "컬럼명", L.DATA_TYPE AS "데이터타입", L.DATA_LENGTH AS "길이", CASE WHEN P.POSITION < 99 THEN 'Y' ELSE ' ' END AS "PK", L.NULLABLE AS "Null 여부", L.COMMENTS AS "Comments" FROM LIST L, PKLIST P WHERE L.TABLE_NAME = P.TABLE_NAME AND L.COLUMN_NAME = P.COLUMN_NAME ORDER BY L.TABLE_NAME, NVL(P.POSITION, 99) ; | cs |
위 쿼리는 해당 DB의 Primary Key만 가져오는 쿼리랍니다.
'프로그래밍 언어 > 쿼리문 + Oracle + MySQL' 카테고리의 다른 글
[ERWin] Reverse Engineer 기능으로 오라클(Oracle)에 연결해서 자동으로 ERD 생성하기 (2) | 2017.05.22 |
---|---|
[오라클] Oracle에서 모든 테이블 목록 가져오는 쿼리 (0) | 2017.05.22 |
[오라클] 테이블정의서 자동으로 만들어주는 Oracle 쿼리 (2) | 2017.05.11 |
[MySQL] join 후 원하는 컬럼 update 하는 방법 (0) | 2017.02.26 |
까페24(cafe24.com)의 호스팅 DB를 외부에서 DB툴로 접속하는 방법 (0) | 2017.01.09 |
댓글