DROP PROCEDURE — プロシージャを削除する
DROP PROCEDURE [ IF EXISTS ]name
[ ( [ [argmode
] [argname
]argtype
[, ...] ] ) ] [, ...] [ CASCADE | RESTRICT ]
DROP PROCEDURE
は既存のプロシージャ定義を削除します。
このコマンドを実行できるのは、そのプロシージャの所有者のみです。
プロシージャの引数の型は必ず指定しなければなりません。
異なる引数を持つ同じ名前のプロシージャが複数存在する可能性があるからです。
IF EXISTS
プロシージャが存在しない場合でもエラーになりません。 この場合注意(NOTICE)メッセージが発行されます。
name
既存の関数の名前です(スキーマ修飾名も可)。 引数リストを指定しない場合、名前はスキーマ内で一意でなければなりません。
argmode
引数モードで、IN
かVARIADIC
のいずれかです。
省略した場合のデフォルトはIN
です。
argname
引数の名前です。
プロシージャの識別を行うには引数のデータ型のみが必要ですので、実際にはDROP PROCEDURE
は引数の名前を無視することに注意してください。
argtype
もしあれば、そのプロシージャの引数のデータ型(スキーマ修飾可能)です。
CASCADE
プロシージャに依存するオブジェクトを自動的に削除し、さらにそれらのオブジェクトに依存するすべてのオブジェクトも削除します(5.14参照)。
RESTRICT
依存しているオブジェクトがある場合、そのプロシージャの削除を拒否します。 これがデフォルトです。
DROP PROCEDURE do_db_maintenance();
このコマンドはSQL標準に準拠しますが、以下のPostgreSQLの拡張があります。
標準はコマンドごとに一つのプロシージャしか削除できません。
IF EXISTS
オプション
引数モードと引数名を指定できます。