DROP {PROCEDURE | FUNCTION} [IF EXISTS] sp_name
これらのステートメントは、ストアドルーチン (ストアドプロシージャーまたはストアドファンクション) を削除するために使用されます。 つまり、指定されたルーチンがサーバーから削除されます。 (DROP FUNCTION
は、ユーザー定義関数の削除にも使用されます。セクション13.7.4.2「ユーザー定義関数に対する DROP FUNCTION ステートメント」 を参照してください。)
ストアドルーチンを削除するには、そのストアドルーチンに対する ALTER ROUTINE
権限が必要です。 (automatic_sp_privileges
システム変数が有効になっている場合は、その権限と EXECUTE
が自動的に、そのルーチンが作成されるときはルーチン作成者に付与され、そのルーチンが削除されるときは作成者から削除されます。 セクション25.2.2「ストアドルーチンと MySQL 権限」を参照してください。)
IF EXISTS
句は MySQL 拡張です。 これは、プロシージャーまたは関数が存在しない場合にエラーが発生しないようにします。 SHOW WARNINGS
で表示できる警告が生成されます。
DROP FUNCTION
はまた、ユーザー定義関数を削除するためにも使用されます (セクション13.7.4.2「ユーザー定義関数に対する DROP FUNCTION ステートメント」を参照してください)。