ALTER OPERATOR — 更改運算子的定義
ALTER OPERATORname
( {left_type
| NONE } ,right_type
) OWNER TO {new_owner
| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER OPERATORname
( {left_type
| NONE } ,right_type
) SET SCHEMAnew_schema
ALTER OPERATORname
( {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
語句。
如果您在文件中看到任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表格 來報告文件問題。