ALTER FUNCTIONは、関数の定義を変更します。
説明
ALTER functionを使用する関数を所有する必要があります。 関数のスキーマを変更するには、新しいスキーマに対するCREATE権限も必要です。 所有者を変更するには、新しい所有ロールの直接または間接のメンバーである必要があり、そのロールは関数のスキーマに対するCREATE権限を持つ必要があります。 (これらの制限により、所有者を変更しても、関数を削除して再作成できないことは何もできません。 ただし、スーパーユーザーは関数の所有権を変更できます。
概要
ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
アクション [ ... ] [制限]
ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
new_nameに名前を付ける
ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
{new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER} への所有者
ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
SET SCHEMA new_schema
ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
[いいえ] 拡張extension_nameに依存
アクションは次のいずれかです。
CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
IMMUTABLE | STABLE | VOLATILE
[ NOT ] LEAKPROOF
[外部] SECURITY INVOKER | [外部] SECURITY DEFINER
PARALLEL { UNSAFE | RESTRICTED | SAFE }
COST execution_cost
ROWS result_rows
サポートsupport_function
SET configuration_parameter { TO | = } { value | DEFAULT}
SET configuration_parameter FROM CURRENT
RESET configuration_parameter
リセットすべて パラメーター
name: 既存の関数の名前 (スキーマ修飾) 。 引数リストを指定しない場合、名前はスキーマ内で一意である必要があります。
argmode: 引数のモード: IN、OUT、INOUT、またはVARIADIC。 省略した場合、デフォルトはINです。 ALTER FUNCTIONは、関数のアイデンティティを決定するために入力引数のみが必要なため、実際にはOUT引数に注意を払っていません。 したがって、IN、INOUT、およびVARIADIC引数をリストするだけで十分です。
argname: 引数の名前。 ALTER FUNCTIONは、引数のデータ型のみが関数のIDを決定するために必要なため、実際には引数名に注意を払わないことに注意してください。
argtype: 関数の引数のデータ型 (必要に応じてスキーマ修飾) (存在する場合) 。
new_name: 関数の新しい名前。
new_owner: 関数の新しい所有者。 関数がSECURITY DEFINERとマークされている場合、新しい所有者として実行されます。
new_schema: 関数の新しいスキーマです。
DEPENDSON EXTENSION extension_name NODEPENDSON extension extension_name: このフォームは、関数を拡張子に依存するものとしてマークするか、NOが指定された場合は拡張子に依存しなくなります。 拡張機能に依存するとしてマークされた関数は、CASCADEが指定されていなくても、拡張機能が削除されると削除されます。 関数は複数の拡張機能に依存することができ、それらの拡張機能のいずれかが削除されると削除されます。
CALLED ON NULL INPUT RETURNS NULL ON NULL INPUT STRICT: CALLED ON NULL INPUTは、その引数の一部またはすべてがnullのときに呼び出されるように関数を変更します。RETURNS NULL ON NULL INPUTまたはSTRICTは、引数のいずれかがnullである場合に呼び出されないように関数を変更します。代わりに、null結果が自動的に仮定されます。
IMMUTABLE STABLE VOLATILE: 関数のボラティリティを指定された設定に変更します。
[EXTERNAL] SECURITY INVOKER [EXTERNAL] SECURITY DEFINER: 関数がセキュリティ定義であるかどうかを変更します。 キーワードEXTERNALは、SQL準拠では無視されます。
PARALLEL: 関数が並列処理に対して安全であると見なされるかどうかを変更します。
LEAKPROOF: 関数が漏れ防止と見なされるかどうかを変更します。
COST execution_cost: 関数の推定実行コストを変更します。
ROWS result_rows: set-returning関数によって返される推定行数を変更します。
SUPPORT support_function: この関数に使用するプランナーサポート関数を設定または変更します。
このオプションは、新しいサポート機能に名前を付ける必要があるため、サポート機能を完全に削除するためには使用できません。 必要な場合は、CREATE OR REPLACE FUNCTIONを使用します。
configuration_parameter value: 関数が呼び出されたときに、設定パラメーターに行う割り当てを追加または変更します。 valueがDEFAULTの場合、または同等の意味でRESETが使用されている場合、関数ローカル設定は削除され、関数はその環境に存在する値で実行されます。 RESET ALLを使用して、すべてのfunction-local設定をクリアします。 SET FROM CURRENTは、関数が入力されたときに適用される値として、ALTER FUNCTIONが実行されたときに現在のパラメータの値を保存します。
RESTRICT: SQL標準に準拠するため無視されます。
例
関数sqrt for type integerの名前をsquare_rootに変更するには:
ALTER FUNCTION sqrt (整数) RENAME TO square_root;関数sqrt for type integerの所有者をjoeに変更するには:
ALTER FUNCTION sqrt (整数) 所有者にジョー;関数sqrt for type integerのスキーマをmathsに変更するには:
ALTER FUNCTION sqrt (整数) SET SCHEMA数学;整数型の関数sqrtを拡張子mathlibに依存するものとしてマークするには:
ALTER FUNCTION sqrt (整数) は拡張mathlibに依存します。関数に自動的に設定される検索パスを調整するには:
ALTER FUNCTION check_password (テキスト) SET search_path = admin、pg_temp;関数のsearch_pathの自動設定を無効にするには:
ALTER FUNCTION check_password (テキスト) RESET search_path;関数は、呼び出し元が使用する検索パスで実行されます。