2021년 1월 19일 화요일

[Oracle] 테이블 관련 조회

 [참조 : https://gent.tistory.com/  https://m.blog.naver.com/  ]

Primary Key  & Index 조회 SQL
 SELECT A.TABLE_NAME,
       A.CONSTRAINT_NAME,
       B.COLUMN_NAME,     
       B.POSITION
  FROM ALL_CONSTRAINTS  A,
       ALL_CONS_COLUMNS B
 WHERE A.TABLE_NAME      = {Table_Name}
   AND A.CONSTRAINT_TYPE = 'P'
   AND A.OWNER           = B.OWNER
   AND A.CONSTRAINT_NAME = B.CONSTRAINT_NAME
 ORDER BY B.POSITION

- View별 조회 내용
ALL_CONSTRAINTS : 현재 사용자가 엑세스할 수 있는 테이블에 대한 제약 조건 정의
USER_CONSTRAINTS : 현재 사용자의 스키마에 있는 테이블에 대한 제약 조건 정의
DBA_CONSTRAINTS :  데이터베이스의 모든 제약 조건 정의

Index 조회(또다른 방법-조회결과 약간 다름)
SELECT * FROM USER_INDEXES WHERE TABLE_NAME = {Table_Name}
 
# 인덱스명 변경하기(PK도 가능)
    ALTER INDEX 변경전이름 RENAME TO 변경후이름;

# 인덱스 REBUILD
alter index [인덱스명] rebuild tablespace [테이블스페이스명]
storage(initial 이니셜값 next 넥스트값 pctincrease 0) ;

# PRIMARY KEY 재생성
1.먼저 PRIMARY KEY 를 drop하세요.
  -> ALTER TABLE [테이블명] DROP PRIMARY KEY;
  -> ALTER TABLE [테이블명] DROP CONSTRAINT [PK명];

2.다시 PRIMARY KEY 를 만드세요.
  -> ALTER TABLE 테이블명 ADD CONSTRAINT PK명 PRIMARY KEY(컬럼1,컬럼2)
       USING INDEX TABLESPACE 테이블스페이스명 STORAGE (INITIAL 5K NEXT 2K PCTINCREASE 0)