ALTER INDEX

제목

ALTER INDEX -- 인덱스 속성 변경

요약

ALTER INDEX [ IF EXISTS ] 이름 RENAME TO 새이름
ALTER INDEX [ IF EXISTS ] 이름 SET TABLESPACE 테이블스페이스이름
ALTER INDEX 이름 DEPENDS ON EXTENSION 확장모듈이름
ALTER INDEX [ IF EXISTS ] 이름 SET ( 저장옵션_매개변수명 =  [, ... ] )
ALTER INDEX [ IF EXISTS ] 이름 RESET ( 저장옵션_매개변수명 [, ... ] )

설명

ALTER INDEX 명령은 인덱스 속성을 바꾼다. 사용법은 다음과 같이 여러 방식이 있다:

IF EXISTS

해당 인덱스가 없어도 오류를 내지 않고, 알림만 보여주고, 정상 종료 된다.

RENAME

RENAME 옵션은 인덱스의 이름을 바꾸는 작업을 한다. 이 때 인덱스 자료는 변경되지 않는다.

SET TABLESPACE

해당 인덱스의 저장 위치를 지정한 테이블스페스로 바꾼다. 이 작업이 수행 되면, 물리적인 실재 인덱스 파일이 옮겨진다. 테이블스페이스에 대한 설명는 CREATE TABLESPACE 명령 참조.

DEPENDS ON EXTENSION

해당 인덱스를 지정한 확장 모듈의 한 부분으로 지정해서, 확장 모듈이 삭제되면 함께 삭제 될 수 있도록 한다.

SET ( 저장옵션_매개변수명 = [, ... ] )

이 구문은 해당 인덱스의 저장 방식에 대한 옵션을 변경 할 수 있는 저장옵션 매개변수값을 지정할 수 있다. 이 매개변수에 대한 자세한 설명은 CREATE INDEX 명령에서 소개하고 있다. 이 명령으로 지정한 값은 실재 인덱스에 바로 적용되지 않는다는 점을 기억해야한다. REINDEX 명령으로 해당 인덱스를 다시 만들어야 원하는 대로 적용된다.

RESET ( 저장옵션_매개변수명 [, ... ] )

지정한 저장옵션 매개변수에 대해서 시스템 초기값으로 되돌리는 작업을 한다. 이 작업 또한 SET 구문의 사용법처럼, REINDEX 작업을 해주어야 반영된다.

매개 변수

이름

작업할 (스키마 이름을 포함 할 수도 있는) 인덱스 이름.

새이름

이름을 바꿀 새 인덱스 이름.

테이블스페이스이름

옮겨갈 새 테이블스페이스 이름.

확장모듈이름

이 인덱스와 관련 있는 확장 모듈 이름

저장옵션_매개변수명

변경할 인덱스 저장 옵션의 매개변수명.

인덱스 저장 옵션 매개변수의 값. 이 값은 해당 매개변수 값으로 사용할 수 있는 숫자이거나 문자열이여야한다.

참고

이 작업들은 ALTER TABLE 명령에서도 가능하다. 내부적으로 보면, ALTER INDEX 명령은 ALTER TABLE 명령을 통한 인덱스 조작 명령의 별칭이다.

ALTER INDEX OWNER 명령도 사용될 수 있으나, 이 작업은 경고를 내면서 무시된다. 인덱스는 테이블 종속적이여서 인덱스의 소유주를 따로 지정할 수는 없다. 필요하다면, 테이블의 소유주를 변경할 수는 있다.

시스템 카탈로그 인덱스에 대해서는 어떠한 작업도 허용되지 않는다.

예제

인덱스 이름을 바꾸는 예제:

ALTER INDEX distributors RENAME TO suppliers;

다른 테이블스페이스로 이동하는 예제:

ALTER INDEX distributors SET TABLESPACE fasttablespace;

인덱스의 fill factor 값 변경(이 인덱스가 이 옵션을 지원한다고 했을 때):

ALTER INDEX distributors SET (fillfactor = 75);
REINDEX INDEX distributors;

호환성

ALTER INDEX 명령은 PostgreSQL 확장 기능이다.

관련 항목

CREATE INDEX, REINDEX