테이블의 인덱스의 조회와 인덱스 생성하는 쿼리 이다.
아래는 타겟 테이블과 똑같이 템프성 테이블을 만들어 사용하면서 동일한 인덱스를 만들어 주기 위해서 쿼리를 작성했다.
-- 인덱스 조회 쿼리(테이블명으로 조회함)
SELECT C.INDEX_NAME
, C.COLUMN_NAME
, C.COLUMN_POSITION
, I.UNIQUENESS, 'A' DIV
FROM USER_INDEXES I
, USER_IND_COLUMNS C
WHERE I.INDEX_NAME = C.INDEX_NAME
AND I.TABLE_NAME = '원본테이블명'
--ORDER BY UNIQUENESS, COLUMN_POSITION
UNION ALL
SELECT C.INDEX_NAME
, C.COLUMN_NAME
, C.COLUMN_POSITION
, I.UNIQUENESS, 'B' DIV
FROM USER_INDEXES I
, USER_IND_COLUMNS C
WHERE I.INDEX_NAME = C.INDEX_NAME
AND I.TABLE_NAME = '타겟테이블명'
ORDER BY DIV, UNIQUENESS, COLUMN_POSITION
;
-- 유니크 인덱스 생성 쿼리
CREATE UNIQUE INDEX 유니크인덱스_타겟테이블
ON 타겟테이블명(
유니크인덱스컬럼명1
,유니크인덱스컬럼명2
,유니크인덱스컬럼명3
);
-- 일반 인덱스 생성 쿼리
CREATE INDEX 인덱스_테이블명
ON 인덱스넣을테이블명(
인덱스컬럼명1
,인덱스컬럼명2
,인덱스컬럼명3
,인덱스컬럼명4
);
-- 인덱스 삭제 쿼리
DROP INDEX XPK_TEMP_N_A통_기타;
아래는 타겟 테이블과 똑같이 템프성 테이블을 만들어 사용하면서 동일한 인덱스를 만들어 주기 위해서 쿼리를 작성했다.
-- 인덱스 조회 쿼리(테이블명으로 조회함)
SELECT C.INDEX_NAME
, C.COLUMN_NAME
, C.COLUMN_POSITION
, I.UNIQUENESS, 'A' DIV
FROM USER_INDEXES I
, USER_IND_COLUMNS C
WHERE I.INDEX_NAME = C.INDEX_NAME
AND I.TABLE_NAME = '원본테이블명'
--ORDER BY UNIQUENESS, COLUMN_POSITION
UNION ALL
SELECT C.INDEX_NAME
, C.COLUMN_NAME
, C.COLUMN_POSITION
, I.UNIQUENESS, 'B' DIV
FROM USER_INDEXES I
, USER_IND_COLUMNS C
WHERE I.INDEX_NAME = C.INDEX_NAME
AND I.TABLE_NAME = '타겟테이블명'
ORDER BY DIV, UNIQUENESS, COLUMN_POSITION
;
-- 유니크 인덱스 생성 쿼리
CREATE UNIQUE INDEX 유니크인덱스_타겟테이블
ON 타겟테이블명(
유니크인덱스컬럼명1
,유니크인덱스컬럼명2
,유니크인덱스컬럼명3
);
-- 일반 인덱스 생성 쿼리
CREATE INDEX 인덱스_테이블명
ON 인덱스넣을테이블명(
인덱스컬럼명1
,인덱스컬럼명2
,인덱스컬럼명3
,인덱스컬럼명4
);
-- 인덱스 삭제 쿼리
DROP INDEX XPK_TEMP_N_A통_기타;