[오라클] PK 조회 방법 (Primary Key)

오라클(Oracle) PK 조회 쿼리


제약조건(Constraints) 뷰를 사용하여 PK 컬럼을 쉽게 조회할 수 있다. 테이블명을 대문자로 TABLE_NAME 조건에 넣으면 PK명과 PK컬럼이 조된다. 해당 테이블에 액세스 권한이 있어야 한다.

 


SELECT A.TABLE_NAME , A.CONSTRAINT_NAME , B.COLUMN_NAME , B.POSITION FROM ALL_CONSTRAINTS A , ALL_CONS_COLUMNS B WHERE A.TABLE_NAME = 'JOB_HISTORY' AND A.CONSTRAINT_TYPE = 'P'

AND A.OWNER = B.OWNER AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME ORDER BY B.POSITION




사용자에 따라서 사용할 수 있는 뷰가 달라진다. 위에 쿼리가 조회되지 않는다면 뷰를 바꿔서 조회하면 된다.

(XXX_CONSTRAINTS, XXX_CONS_COLUMNS)

 

 ALL_CONSTRAINTS

 현재 사용자가 엑세스할 수 있는 테이블에 대한 제약 조건 정의

 USER_CONSTRAINTS

 현재 사용자의 스키마에 있는 테이블에 대한 제약 조건 정의

 DBA_CONSTRAINTS

 데이터베이스의 모든 제약 조건 정의

 

SELECT A.TABLE_NAME , A.CONSTRAINT_NAME , B.COLUMN_NAME , B.POSITION FROM USER_CONSTRAINTS A , USER_CONS_COLUMNS B WHERE A.TABLE_NAME = 'JOB_HISTORY' AND A.CONSTRAINT_TYPE = 'P'

AND A.OWNER = B.OWNER AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME ORDER BY B.POSITION ;

SELECT A.TABLE_NAME , A.CONSTRAINT_NAME , B.COLUMN_NAME , B.POSITION FROM DBA_CONSTRAINTS A , DBA_CONS_COLUMNS B WHERE A.TABLE_NAME = 'JOB_HISTORY' AND A.CONSTRAINT_TYPE = 'P'

AND A.OWNER = B.OWNER AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME ORDER BY B.POSITION

 

댓글

Designed by JB FACTORY