DROP OPERATOR CLASS

删除一个运算符类。

概要

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

描述

DROP OPERATOR 用于删除现有的运算符类。执行此命令时,您必须是该运算符类的拥有者。

DROP OPERATOR CLASS 不会删除该类所引用的任何运算符或函数。若存在依赖于该运算符类的索引,则需指定 CASCADE 选项才能完成删除操作。

参数

  • IF EXISTS
    • 若操作符类不存在,则不应抛出错误。此时将发出一个通知。
  • name
    • 现有运算符类的名称(可选带模式限定)。
  • index_method
    • 该操作符类所对应的索引访问方法的名称。
  • CASCADE
    • 自动删除依赖于操作符类(如索引)的对象,进而删除所有依赖于这些对象的对象。
  • RESTRICT
    • 如果存在依赖该操作符类的对象,则拒绝删除该操作符类。此为默认行为。

      注意

      DROP OPERATOR CLASS 不会删除包含该类的操作符家族,即使该家族中已无其他成员(尤其当该家族是由 CREATE OPERATOR CLASS 隐式创建时)。空操作符家族本身无害,但为保持整洁,您可能希望使用 DROP OPERATOR FAMILY 删除该家族;或者更妥当的做法是,从一开始就使用 DROP OPERATOR FAMILY。

示例

移除 B-树运算符类 widget_ops:

DROP OPERATOR CLASS widget_ops USING btree;

如果存在使用该运算符类的索引,则此命令将无法成功执行。若需删除这些索引并同时删除运算符类,请添加 CASCADE 选项。

兼容性

SQL 标准中不存在 DROP OPERATOR CLASS语句。

另见

ALTER OPERATOR CLASS, CREATE OPERATOR CLASS, DROP OPERATOR FAMILY