DROP OPERATOR CLASS — 연산자 클래스 삭제하기

DROP OPERATOR CLASS — 연산자 클래스 삭제하기

DROP OPERATOR CLASS은 이미 존재하는 연산자 클래스(operator class)를 제거하는 명령이에요. 연산자 클래스의 소유자만 실행할 수 있습니다. 다만 이 명령은 클래스가 참조하는 연산자나 함수 자체를 삭제하지는 않아요. 클래스에 의존하는 인덱스가 있다면 CASCADE를 지정해야 삭제가 완료됩니다.

출처: PostgreSQL 문서

본문

Synopsis

DROP OPERATOR CLASS [ IF EXISTS ] name USING index_method [ CASCADE | RESTRICT ]

Description

DROP OPERATOR CLASS은 이미 존재하는 연산자 클래스를 삭제해요. 이 명령을 실행하려면 연산자 클래스의 소유자여야 합니다.

DROP OPERATOR CLASS은 클래스가 참조하는 연산자나 함수는 삭제하지 않아요. 연산자 클래스에 의존하는 인덱스가 있다면 삭제를 완료하려면 CASCADE를 지정해야 합니다.

Parameters

  • IF EXISTS — 연산자 클래스가 존재하지 않아도 오류를 던지지 않아요. 이 경우에는 통지(notice)만 발행됩니다.
  • name — 이미 존재하는 연산자 클래스의 이름(스키마 한정 가능).
  • index_method — 연산자 클래스가 대상으로 하는 인덱스 접근 메서드의 이름.
  • CASCADE — 연산자 클래스에 의존하는 객체(인덱스 등)와, 나아가 그 객체들에 의존하는 모든 객체를 자동으로 함께 삭제해요 (5.15절 참고).
  • RESTRICT — 연산자 클래스에 의존하는 객체가 있으면 삭제를 거부해요. 이게 기본값이에요.

Notes

DROP OPERATOR CLASS은 클래스를 포함하는 연산자 패밀리(operator family)를 삭제하지 않아요. 패밀리에 아무것도 남지 않아도 마찬가지인데, 특히 CREATE OPERATOR CLASS로 패밀리가 암시적으로 만들어진 경우가 그렇죠. 빈 연산자 패밀리는 무해하지만, 정리를 위해 DROP OPERATOR FAMILY로 제거할 수 있어요. 아니면 애초에 DROP OPERATOR FAMILY를 쓰는 편이 더 나을 수도 있습니다.

Examples

B-트리 연산자 클래스 widget_ops을 제거해요.

DROP OPERATOR CLASS widget_ops USING btree;

이 명령은 연산자 클래스를 사용하는 기존 인덱스가 있으면 성공하지 않아요. 그런 인덱스를 연산자 클래스와 함께 삭제하려면 CASCADE를 추가하세요.

Compatibility

SQL 표준에는 DROP OPERATOR CLASS 문이 없습니다.

더 알아보기 (Learn more)