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
陳述式。
如果您在文件中看到任何不正確、與您特定功能的經驗不符或需要進一步說明的地方,請使用此表單回報文件問題。