他のバージョンの文書 15 | 14 | 13 | 12 | 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 ROUTINE

DROP ROUTINE — ルーチンを削除する

概要

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

説明

DROP ROUTINEは1つ以上の既存のルーチンを削除します。 用語ルーチンは、集約関数や通常の関数、プロシージャを含みます。 パラメータや例、さらなる詳細の説明はDROP AGGREGATEDROP FUNCTIONDROP PROCEDUREを参照してください。

注釈

DROP ROUTINEにより使われている検索規則は基本的にはDROP PROCEDUREと同じです。特に、DROP ROUTINEは、argmodeの印のない引数リストを、OUT引数がそのリストに含まれているとする標準SQLの定義を使っているかもしれないと考慮するコマンドの振舞いを共有します。 (DROP AGGREGATEDROP FUNCTIONはそのようなことをしません。)

種類の異なるルーチンで同じ名前が共有されている時には、より特定のコマンド(DROP FUNCTION等)では成功するものの、DROP ROUTINEでは曖昧なためのエラーで失敗する可能性があります。 引数の型のリストをより注意深く指定することでも、そのような問題を解決できるでしょう。

ALTER ROUTINECOMMENT ON ROUTINEのような既存のルーチンに対して作用する他のコマンドでも、この検索規則は使われています。

integer型に対するルーチンfooを削除します。

DROP ROUTINE foo(integer);

このコマンドはfooが集約、関数、プロシージャの何れであるかによらず動作します。

互換性

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

  • 標準ではコマンド毎に一つのルーチンしか削除できません。

  • IF EXISTSオプションは拡張です。

  • 引数のモードと名前を指定可能できるのは拡張であり、モードを指定した時の検索規則は異なります。

  • ユーザ定義可能な集約関数は拡張です。

関連項目

DROP AGGREGATE, DROP FUNCTION, DROP PROCEDURE, ALTER ROUTINE

CREATE ROUTINEコマンドは無いことに注意してください。