반응형
오라클 PK 조회방법
SELECT A.TABLE_NAME
, A.CONSTRAINT_NAME
, B.COLUMN_NAME
, B.POSITION
FROM ALL_CONSTRAINTS A
, ALL_CONS_COLUMNS B
WHERE 1=1
AND A.CONSTRAINT_TYPE = 'P'
AND A.OWNER = B.OWNER
AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME
-- AND A.TABLE_NAME = 'JOB_HISTORY' -- 특정테이블
ORDER BY B.POSITION
결과예시
TABLE_NAME | CONSTRAINT_NAME | COLUMN_NAME | POSITION |
---|---|---|---|
AQ$_ALERT_QT_H | SYS_IOT_TOP_19840 | MSGID | 1 |
AQ$_ALERT_QT_G | SYS_IOT_TOP_19843 | MSGID | 1 |
AQ$_ALERT_QT_I | SYS_IOT_TOP_19846 | SUBSCRIBER# | 1 |
- TABLE_NAME : PK가 걸려있는 테이블
- CONSTRAINT_NAME : PK이름
- COLUMN_NAME : PK를 건 컬럼
- POSITION : PK 순서
constraint_type
AND A.CONSTRAINT_TYPE = 'P' 와 같이, constraint_type을 명시한 조건절이 있는데,
P 대신 다른 값을 사용하면 다른 constraint도 확인할 수 있다.
이에 대한 설명은 아래와 같다.
CONSTRAINT_TYPE | 설명 | 대상 |
---|---|---|
C | Check on a table, Check, Not NULL | Column |
O | Read Only on a view | Object |
P | Primary Key | Object |
R | Referential AKA Foreign Key | Column |
U | Unique Key | Column |
V | Check Option on a view | Object |
ALL_CONSTRAINTS, ALL_CONS_COLUMNS
사용자에 따라서 사용할 수 있는 뷰가 달라 질 수 있는 부분이 있습니다.
앞선 쿼리로 조회되지 않는다면 뷰를 바꿔서 조회하면 됩니다.
( FROM ALL_CONSTRAINTS A
, ALL_CONS_COLUMNS B 부분)
- ALL_CONSTRAINTS : 현재 사용자가 엑세스할 수 있는 테이블에 대한 제약 조건 정의
- USER_CONSTRAINTS : 현재 사용자의 스키마에 있는 테이블에 대한 제약 조건 정의
- DBA_CONSTRAINTS : 데이터베이스의 모든 제약 조건 정의
728x90
반응형
'개발팁' 카테고리의 다른 글
MariaDB / mysql 주요 자료형, mysql 자료형, datatype (2) | 2025.07.10 |
---|---|
오라클 락 조회, 오라클 테이블 락 확인 쿼리, 오라클 락 해제 (0) | 2025.07.04 |
linux 보안점검 - 파일 접근 권한 제한 (1) | 2025.07.02 |
Oracle DB 계정 비밀번호변경, SQL Developer 비밀번호 변경, 오라클 비밀번호 변경 REPLACE (1) | 2025.05.08 |
Oracle DB sys_context, 오라클 현재 세션 정보 확인, sys_context userenv (1) | 2025.05.06 |
댓글