PK가 없는 테이블을 조회하기 위해서는 아래처럼 다소 복잡한 쿼리를 작성해야 한다.
-- 1 SELECT a.owner, a.table_name FROM dba_tables a WHERE a.owner = 'SCOTT' AND NOT EXISTS (SELECT 1 FROM dba_constraints x WHERE x.owner = a.owner AND x.table_name = a.table_name AND x.constraint_type = 'P'); OWNER TABLE_NAME ----- ---------- SCOTT SALGRADE SCOTT BONUS 2 행이 선택되었습니다.
DBA_LOGSTDBY_NOT_UNIQUE 뷰를 조회하면 PK와 NOT NULL UNIQUE 인덱스가 없는 테이블을 간단히 조회할 수 있다.
-- 2 SELECT * FROM dba_logstdby_not_unique WHERE owner = 'SCOTT'; OWNER TABLE_NAME BAD_COLUMN ----- ---------- ---------- SCOTT BONUS N SCOTT SALGRADE N 2 행이 선택되었습니다.
'Oracle > Administration' 카테고리의 다른 글
사용자 정의 함수와 FBI (0) | 2020.02.22 |
---|---|
ALTER SEQUENCE RESTART (0) | 2019.09.04 |
Hybrid Partitioned 테이블 (0) | 2019.08.22 |
Partitioned External 테이블 (0) | 2019.08.22 |
인덱스 명명 규칙 (0) | 2019.08.19 |