오라클(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)
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 Oracle [Oracle] 해당 테이블 PK 컬럼 조회방법코생아 2022. 3. 22. 13:50
위 게시물에서는 해당 테이블의 PK 존재 여부만 확인하였지만, 이번 게시물에서는 해당 테이블의 PK존재 여부뿐만 아니라 PK 컬럼 정보까지 조회하는 방법입니다.
만약 조회하는 유저의 권한이 충분하지 않다면 DBA_CONSTRAINTS --> ALL_CONSTRAINTS 테이블로 변경하여 조회하시면 정상적으로 조회가 가능합니다. SELECT A.TABLE_NAME 반응형 --제약조건을 조회하는 쿼리 SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, A.* FROM ALL_CONSTRAINTS A WHERE TABLE_NAME = '테이블명' --컬럼별 제약조건을 조회하는 쿼리 SELECT * FROM ALL_CONS_COLUMNS WHERE CONSTRAINT_NAME = '제약조건명' --위 두 쿼리를 조합하여 사용 --컬럼별 제약조건을 조회하는데 제약조건 타입이 PK인 제약조건명으로 조회 SELECT * FROM ALL_CONS_COLUMNS WHERE CONSTRAINT_NAME = ( SELECT CONSTRAINT_NAME FROM ALL_CONSTRAINTS WHERE TABLE_NAME = '테이블명' AND CONSTRAINT_TYPE = 'P' ) 반응형 'ORACLE' 카테고리의 다른 글
|