2025年9月25日: PostgreSQL 18 釋出!
支援版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0

ALTER OPERATOR

ALTER OPERATOR — 更改運算子的定義

概要

ALTER OPERATOR name ( { left_type | NONE } , right_type )
    OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }

ALTER OPERATOR name ( { left_type | NONE } , right_type )
    SET SCHEMA new_schema

ALTER OPERATOR name ( { left_type | NONE } , right_type )
    SET ( {  RESTRICT = { res_proc | NONE }
           | JOIN = { join_proc | NONE }
           | COMMUTATOR = com_op
           | NEGATOR = neg_op
           | HASHES
           | MERGES
          } [, ... ] )

描述

ALTER OPERATOR 更改運算子的定義。

使用 ALTER OPERATOR 必須擁有該運算子。要更改所有者,您必須能夠 SET ROLE 到新的所有者角色,並且該角色必須擁有該運算子模式的 CREATE 許可權。(這些限制確保更改所有者不會執行您透過刪除並重新建立該運算子無法完成的操作。然而,超級使用者可以更改任何運算子的所有權。)

引數

name

現有運算子的名稱(可選擇模式限定)。

left_type

運算子左運算元的資料型別;如果運算子沒有左運算元,則寫 NONE

right_type

運算子右運算元的資料型別。

new_owner

運算子的新所有者。

new_schema

運算子的新模式。

res_proc

該運算子的限制選擇性估計函式;寫 NONE 以移除現有的選擇性估計器。

join_proc

該運算子的連線選擇性估計函式;寫 NONE 以移除現有的選擇性估計器。

com_op

該運算子的交換運算元。僅當運算子沒有現有交換運算元時才能更改。

neg_op

該運算子的否定運算元。僅當運算子沒有現有否定運算元時才能更改。

HASHES

指示該運算子可以支援雜湊連線。只能啟用,不能停用。

MERGES

指示該運算子可以支援合併連線。只能啟用,不能停用。

註釋

有關更多資訊,請參閱 第 36.14 節第 36.15 節

由於交換運算元成對存在,互為交換運算元,因此 ALTER OPERATOR SET COMMUTATOR 也會將 com_op 的交換運算元設定為目標運算子。同樣,ALTER OPERATOR SET NEGATOR 也會將 neg_op 的否定運算元設定為目標運算子。因此,您必須擁有交換運算元或否定運算元以及目標運算子。

示例

更改型別為 text 的自定義運算子 a @@ b 的所有者

ALTER OPERATOR @@ (text, text) OWNER TO joe;

更改型別為 int[] 的自定義運算子 a && b 的限制和連線選擇性估計函式

ALTER OPERATOR && (int[], int[]) SET (RESTRICT = _int_contsel, JOIN = _int_contjoinsel);

&& 運算子標記為其自身的交換運算元

ALTER OPERATOR && (int[], int[]) SET (COMMUTATOR = &&);

相容性

SQL 標準中沒有 ALTER OPERATOR 語句。

提交更正

如果您在文件中看到任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表格 來報告文件問題。