[11/15開催: PostgreSQL Conference Japan 2019 参加受付中] 
他のバージョンの文書 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

DROP PROCEDURE

DROP PROCEDURE — プロシージャを削除する

概要

DROP PROCEDURE [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
    [ CASCADE | RESTRICT ]

説明

DROP PROCEDUREは既存のプロシージャ定義を削除します。 このコマンドを実行できるのは、そのプロシージャの所有者のみです。 プロシージャの引数の型は必ず指定しなければなりません。 異なる引数を持つ同じ名前のプロシージャが複数存在する可能性があるからです。

パラメータ

IF EXISTS

プロシージャが存在しない場合でもエラーになりません。 この場合注意(NOTICE)メッセージが発行されます。

name

既存の関数の名前です(スキーマ修飾名も可)。 引数リストを指定しない場合、名前はスキーマ内で一意でなければなりません。

argmode

引数モードで、INVARIADICのいずれかです。 省略した場合のデフォルトはINです。

argname

引数の名前です。 プロシージャの識別を行うには引数のデータ型のみが必要ですので、実際にはDROP PROCEDUREは引数の名前を無視することに注意してください。

argtype

もしあれば、そのプロシージャの引数のデータ型(スキーマ修飾可能)です。

CASCADE

プロシージャに依存するオブジェクトを自動的に削除し、さらにそれらのオブジェクトに依存するすべてのオブジェクトも削除します(5.13参照)。

RESTRICT

依存しているオブジェクトがある場合、そのプロシージャの削除を拒否します。 これがデフォルトです。

DROP PROCEDURE do_db_maintenance();

互換性

このコマンドはSQL標準に準拠しますが、以下のPostgreSQLの拡張があります。

  • 標準はコマンドごとに一つのプロシージャしか削除できません。

  • IF EXISTSオプション

  • 引数モードと引数名を指定できます。

関連項目

CREATE PROCEDURE, ALTER PROCEDURE, DROP FUNCTION, DROP ROUTINE