無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

ALTER FUNCTION

名前

ALTER FUNCTION -- 関数定義を変更する

概要

ALTER FUNCTION 

name

 ( [ [ 

argmode

 ] [ 

argname

 ] 

argtype

 [, ...] ] )
    

action

 [ ... ] [ RESTRICT ]
ALTER FUNCTION 

name

 ( [ [ 

argmode

 ] [ 

argname

 ] 

argtype

 [, ...] ] )
    RENAME TO 

new_name


ALTER FUNCTION 

name

 ( [ [ 

argmode

 ] [ 

argname

 ] 

argtype

 [, ...] ] )
    OWNER TO 

new_owner


ALTER FUNCTION 

name

 ( [ [ 

argmode

 ] [ 

argname

 ] 

argtype

 [, ...] ] )
    SET SCHEMA 

new_schema





ここで、

action

は以下のいずれかです。



    CALLED ON NULL INPUT | RETURNS NULL ON NULL INPUT | STRICT
    IMMUTABLE | STABLE | VOLATILE | [ NOT ] LEAKPROOF
    [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER
    COST 

execution_cost


    ROWS 

result_rows


    SET 

configuration_parameter

 { TO | = } { 

value

 | DEFAULT }
    SET 

configuration_parameter

 FROM CURRENT
    RESET 

configuration_parameter


    RESET ALL

説明

ALTER FUNCTION は関数定義を変更します。

ALTER FUNCTION を使用するには関数の所有者でなければなりません。 関数のスキーマを変更するには、新しいスキーマにおける CREATE 権限も必要です。 所有者を変更するには、直接または間接的に新しいロールのメンバでなければなりません。 また、そのロールは関数のスキーマにおいて CREATE を持たなければなりません。 (この制限により、強制的に、所有者の変更が関数の削除と再作成で行うことができない何らかの処理を行わないようになります。 しかし、スーパーユーザはすべての関数の所有者を変更することができます。)

パラメータ

name

既存の関数名です(スキーマ修飾名も可)。

argmode

引数のモードで、 IN OUT INOUT VARIADIC のいずれかです。 省略された場合のデフォルトは IN です。 関数の識別を行うには入力引数のみが必要ですので、実際には ALTER FUNCTION OUT 引数を無視することに注意してください。 ですので、 IN INOUT および VARIADIC 引数を列挙することで十分です。

argname

引数の名前です。 関数の識別を行うには引数のデータ型のみが必要ですので、実際には ALTER FUNCTION は引数の名前を無視することに注意してください。

argtype

もしあれば、その関数の引数のデータ型(複数可)です。 (スキーマで修飾可能です)

new_name

新しい関数名です。

new_owner

新しい関数の所有者です。 関数に SECURITY DEFINER が指定されている場合、その後は新しい所有者の権限で関数が実行されることに注意してください。

new_schema

関数の新しいスキーマです。

CALLED ON NULL INPUT
RETURNS NULL ON NULL INPUT
STRICT

CALLED ON NULL INPUT は、引数の一部またはすべてがNULLの場合に関数が呼び出されるように変更します。 RETURNS NULL ON NULL INPUT もしくは STRICT は、引数の一部がNULLの場合に関数が呼び出されないように変更します。 代わりに自動的にNULLという結果が仮定されます。 詳細は CREATE FUNCTION を参照してください。

IMMUTABLE
STABLE
VOLATILE

関数の揮発性を指定した設定に変更します。 関数の揮発性に関する詳細については CREATE FUNCTION を参照してください。

[ EXTERNAL ] SECURITY INVOKER
[ EXTERNAL ] SECURITY DEFINER

関数のセキュリティを定義者にするか否かを変更します。 EXTERNAL キーワードはSQLとの互換性のためのものであり、無視されます。 この機能の詳細については CREATE FUNCTION を参照してください。

LEAKPROOF

関数を漏洩防止関数とみなすか否かを変更します。 この機能に関する詳細については CREATE FUNCTION を参照してください。

COST execution_cost

関数の推定実行コストを変更します。 詳細については CREATE FUNCTION を参照してください。

ROWS result_rows

集合を返す関数で返される推定行数を変更します。 詳細については CREATE FUNCTION を参照してください。

configuration_parameter
value

関数呼び出し時に設定パラメータに対して行われる代入を追加または変更します。 value DEFAULT 、またはそれと等価な RESET が使用された場合、関数の局所的な設定は削除されます。 このため、関数はその環境内に存在する値で実行されます。 すべての関数の局所的な設定を整理したければ RESET ALL を使用してください。 SET FROM CURRENT は、セッションにおけるパラメータの現在値を関数起動時に適用される値として保管します。

設定可能なパラメータとその値に関する詳細については、 SET および 第18章 を参照してください。

RESTRICT

標準SQLとの互換性のためのものであり、無視されます。

integer 型用の sqrt 関数の名前を square_root に変更します。

ALTER FUNCTION sqrt(integer) RENAME TO square_root;

integer 型用の sqrt 関数の所有者を joe に変更します。

ALTER FUNCTION sqrt(integer) OWNER TO joe;

integer 型用の sqrt 関数のスキーマを maths に変更します。

ALTER FUNCTION sqrt(integer) SET SCHEMA maths;

関数用に検索パスを自動的に設定するように調整します。

ALTER FUNCTION check_password(text) SET search_path = admin, pg_temp;

関数用の search_path の自動設定を無効にします。

ALTER FUNCTION check_password(text) RESET search_path;

呼び出し元で使用される検索パスでこの関数が実行されるようになります。

互換性

この文の一部は標準SQLの ALTER FUNCTION 文に従っています。 標準ではより多くの関数の属性を変更できますが、関数名の変更、関数を定義者の権限で実行するかどうかの変更、関数と設定パラメータ値の関連付け、関数の所有者やスキーマ、揮発性の変更を行う機能はありません。 また、標準では RESTRICT キーワードを必須としていますが、 PostgreSQL では省略可能です。

関連項目

CREATE FUNCTION , DROP FUNCTION

powered by SEO.CUG.NET