=================== DROP OPERATOR CLASS =================== .. container:: refentry :name: SQL-DROPOPCLASS .. container:: titlepage .. container:: refnamediv .. rubric:: DROP OPERATOR CLASS :name: drop-operator-class DROP OPERATOR CLASS — 移除一个操作符类 .. container:: refsynopsisdiv .. rubric:: 大纲 :name: 大纲 .. code:: synopsis DROP OPERATOR CLASS [ IF EXISTS ] name USING index_method [ CASCADE | RESTRICT ] .. container:: refsect1 :name: id-1.9.3.120.5 .. rubric:: 描述 :name: 描述 ``DROP OPERATOR CLASS``\ 删除一个现有的 操作符类。要执行这个命令,你必须是该操作符类的拥有者。 ``DROP OPERATOR CLASS``\ 不会删除任何被 该类引用的操作符或者函数。如果有索引依赖于该操作符类,你将需要指 定\ ``CASCADE``\ 来完成删除。 .. container:: refsect1 :name: id-1.9.3.120.6 .. rubric:: 参数 :name: 参数 .. container:: variablelist ``IF EXISTS`` 如果该操作符类不存在则不要抛出一个错误,而是发出一个提示。 ``name`` 一个现有的操作符类的名称(可以是模式限定的)。 ``index_method`` 该操作符类适用的索引访问方法的名称。 ``CASCADE`` 自动删除依赖于该操作符类的对象(例如索引),然后删除所有 依赖于那些对象的对象(见\ `节 `__\ )。 ``RESTRICT`` 如果有任何对象依赖于该操作符类,则拒绝删除它。这是默认值。 .. container:: refsect1 :name: id-1.9.3.120.7 .. rubric:: 注解 :name: 注解 ``DROP OPERATOR CLASS``\ 将不会删除包含该类的 操作符族,即使该族中已经没有任何成员(特别是由 ``CREATE OPERATOR CLASS``\ 隐式创建的族)。一个 空操作符族是无害的,但是为了整洁你可能希望用 ``DROP OPERATOR FAMILY``\ 移除该操作符族,或者 一开始就使用\ ``DROP OPERATOR FAMILY``\ 会更好。 .. container:: refsect1 :name: id-1.9.3.120.8 .. rubric:: 示例 :name: 示例 移除 B-树操作符类\ ``widget_ops``\ : .. code:: programlisting DROP OPERATOR CLASS widget_ops USING btree; 如果有任何使用该操作符类的索引存在,这个命令都不会成功。增加 ``CASCADE``\ 可以把这类索引与该操作符类一起删除。 .. container:: refsect1 :name: id-1.9.3.120.9 .. rubric:: 兼容性 :name: 兼容性 SQL 标准中没有\ ``DROP OPERATOR CLASS``\ 语句。 .. container:: refsect1 :name: id-1.9.3.120.10 .. rubric:: 另见 :name: 另见 `ALTER OPERATOR CLASS `__, `CREATE OPERATOR CLASS `__, `DROP OPERATOR FAMILY `__