すべてのプロダクト
Search
ドキュメントセンター

PolarDB:ALTER PROCEDURE

最終更新日:May 30, 2024

ALTER PROCEDUREは、プロシージャの定義を変更します。

説明

ALTER procedureを使用するプロシージャを所有する必要があります。 プロシージャのスキーマを変更するには、新しいスキーマに対するCREATE権限も必要です。 所有者を変更するには、新しい所有ロールの直接または間接のメンバーである必要があります。また、そのロールはプロシージャのスキーマに対するCREATE権限を持つ必要があります。 (これらの制限により、所有者を変更しても、手順を削除して再作成できないことは何もできません。 ただし、スーパーユーザーは任意の手順の所有権を変更できます。

概要

ALTER PROCEDURE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    アクション [ ... ] [制限]
ALTER PROCEDURE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    new_nameに名前を付ける
ALTER PROCEDURE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    {new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER} への所有者
ALTER PROCEDURE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    SET SCHEMA new_schema
ALTER PROCEDURE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    [いいえ] 拡張extension_nameに依存

アクションは次のいずれかです。

    [外部] SECURITY INVOKER | [外部] SECURITY DEFINER
    SET configuration_parameter { TO | = } { value | DEFAULT}
    SET configuration_parameter FROM CURRENT
    RESET configuration_parameter
    リセットすべて 

パラメーター

name: 既存のプロシージャの名前 (オプションでスキーマ修飾) 。 引数リストを指定しない場合、名前はスキーマ内で一意である必要があります。

argmode: 引数のモード: INOUTINOUT、またはVARIADIC。 省略した場合、デフォルトはINです。

argname: 引数の名前。 ALTER PROCEDUREは、引数のデータ型のみがプロシージャのIDを決定するために使用されるため、実際には引数名に注意を払わないことに注意してください。

argtype: プロシージャの引数のデータ型 (必要に応じてスキーマ修飾) (存在する場合) 。 引数データ型を使用してプロシージャを検索する方法の詳細については、「DROP PROCEDURE」をご参照ください。

new_name: プロシージャの新しい名前。

new_owner: プロシージャの新しい所有者。 プロシージャがSECURITY DEFINERとマークされている場合、その後、新しい所有者として実行されます。

new_schema: プロシージャの新しいスキーマです。

extension_name: このフォームは、拡張子に依存するものとしてプロシージャをマークします。

[EXTERNAL] SECURITY INVOKER [EXTERNAL] SECURITY DEFINER: プロシージャがセキュリティ定義であるかどうかを変更します。 キーワードEXTERNALは、SQL準拠では無視されます。 この機能の詳細については、「CREATE PROCEDURE」をご参照ください。

configuration_parameter value: プロシージャが呼び出されたときに、設定パラメーターに行う割り当てを追加または変更します。 valueDEFAULTの場合、つまりRESETが使用されている場合は、プロシージャローカル設定が削除され、プロシージャはその環境に存在する値で実行されます。 RESET ALLを使用して、すべてのプロシージャローカル設定をクリアします。 SET FROM CURRENTは、ALTER PROCEDUREが実行されたときに現在のパラメータの値を、プロシージャが入力されたときに適用される値として保存します。

RESTRICT: SQL標準に準拠するため無視されます。

typeintegertoinsert_recordの2つの引数でprocedureinsert_datawithの名前を変更するには:

ALTER PROCEDURE insert_data(integer, integer) RENAME TO insert_record;

整数型の2つの引数を持つプロシージャinsert_dataの所有者をjoeに変更するには:

ALTER PROCEDURE insert_data(integer, integer) 所有者TO joe;

整数型の2つの引数を持つプロシージャinsert_dataのスキーマをアカウンティングに変更するには:

ALTER PROCEDURE insert_data (整数、整数) SET SCHEMAアカウンティング;

プロシージャinsert_data(integer, integer) を拡張子myextに依存するものとしてマークするには:

ALTER PROCEDURE insert_data(integer, integer) は拡張myextに依存します。

プロシージャに自動的に設定される検索パスを調整するには:

ALTER PROCEDURE check_password (テキスト) SET search_path = admin、pg_temp;

プロシージャのsearch_pathの自動設定を無効にするには:

ALTER PROCEDURE check_password (テキスト) RESET search_path;

この手順は、呼び出し元が使用する検索パスを使用して実行されます。