DROP INDEX

제목

DROP INDEX -- 인덱스 삭제

요약

DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] 이름 [, ...] [ CASCADE | RESTRICT ]

설명

DROP INDEX 명령은 현재 데이터베이스에서 해당 인덱스를 지운다. 인덱스는 해당 소유자만 지울 수 있다.

매개 변수

CONCURRENTLY

이 옵션을 사용하면, 인덱스 삭제 작업을 할 때도, 이 인덱스를 사용하는 테이블의 자료 조작 및 검색이 가능하다. 일반적으로 DROP INDEX 명령은 해당 테이블에 대해서 배타적 잠금을 사용한다. 테이블 배타적 잠금이란 해당 작업을 하는 동안에, 다른 사용자들은 그 테이블에 대해서 어떠한 작업도 진행 하지 못하고, 삭제 작업이 끝날 때까지 기다리는 것을 의미한다.

이 옵션을 사용할 때는 다음 사항을 꼭 지켜야한다. 먼저 삭제 명령은 반드시 하나의 인덱스만 사용해야한다. 또한 CASCADE 옵션과 함께 사용할 수 없다. (이런 제약 사항 때문에, UNIQUE 인덱스나, PRIMARY KEY 제약조건으로 만들어진 인덱스는 이 옵션을 지정해서 삭제할 수 없다.) 또한 일반적인 DROP INDEX 명령은 트랜잭션 내에서 사용할 수 있으나, 이 옵션을 사용하면 트랜잭션 내에서는 사용할 수 없다.

IF EXISTS

해당 인덱스가 없어도 오류를 내지 않고, 알림 메시지만 보여준다.

name

삭제 하려는 (스키마 이름을 포함 할 수도 있는) 인덱스 이름.

CASCADE

해당 인덱스와 의존성 관계가 있는 모든 객체도 함께 삭제한다. 물론, 삭제될 다른 객제와 관계된 또 다른 객체들도 함께 삭제 한다. (5.13절 참조).

RESTRICT

해당 인덱스와 의존성 관계가 있는 객체가 있으면 작업을 중지한다. 이 옵션이 기본값이다.

예제

title_idx 이름의 인덱스를 지우려면:

DROP INDEX title_idx;

호환성

DROP INDEX 명령은 PostgreSQL 확장 기능이다. 표준 SQL에서는 인덱스에 대한 규정이 없다.

관련 항목

CREATE INDEX