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