DROP FUNCTION — 関数を削除する
DROP FUNCTION [ IF EXISTS ]name( [ [argmode] [argname]argtype[, ...] ] ) [ CASCADE | RESTRICT ]
DROP FUNCTIONは既存の関数定義を削除します。
このコマンドを実行できるのは、その関数の所有者のみです。
関数の引数の型は必ず指定しなければなりません。
異なる引数を持つ同じ名前の関数が複数存在する可能性があるからです。
IF EXISTS関数が存在しない場合でもエラーになりません。 この場合注意メッセージが発行されます。
name既存の関数の名前です(スキーマ修飾名も可)。
argmode引数のモードで、IN、OUT、INOUT、VARIADICのいずれかです。
省略された場合のデフォルトはINです。
関数の識別を行うには入力引数のみが必要ですので、実際にはDROP FUNCTIONがOUT引数を無視することに注意してください。
ですので、IN、INOUT、およびVARIADIC引数を列挙することで十分です。
argname引数の名前です。
関数の識別を行うには引数のデータ型のみが必要ですので、実際にはDROP FUNCTIONは引数の名前を無視することに注意してください。
argtypeもしあれば、その関数の引数のデータ型(スキーマ修飾可能)です。
CASCADE関数に依存するオブジェクト(演算子やトリガなど)を自動的に削除し、さらにそれらのオブジェクトに依存するすべてのオブジェクトも削除します(5.13. 依存関係の追跡参照)。
RESTRICT依存しているオブジェクトがある場合、その関数の削除を拒否します。 これがデフォルトです。
次のコマンドは平方根関数を削除します。
DROP FUNCTION sqrt(integer);
DROP FUNCTION文は標準SQLでも定義されていますが、このコマンドとは互換性がありません。