DROP FUNCTION [IF EXISTS] function_name
このステートメントは、function_name
という名前のユーザー定義関数 (UDF) を削除します。 (DROP FUNCTION
は、ストアドファンクションの削除にも使用されます。セクション13.1.29「DROP PROCEDURE および DROP FUNCTION ステートメント」 を参照してください。)
DROP FUNCTION
は、CREATE FUNCTION
を補完したものです。 関数を登録する mysql.func
システムテーブルから行が削除されるため、mysql
システムスキーマに対する DELETE
権限が必要です。
DROP FUNCTION
は、インストールされている UDF に関する実行時情報を提供するパフォーマンススキーマ user_defined_functions
テーブルからも関数を削除します。 セクション27.12.19.12「user_defined_functions テーブル」を参照してください。
通常の起動シーケンスでは、サーバーは mysql.func
テーブルに登録されている UDF をロードします。 DROP FUNCTION
は削除された関数の mysql.func
行を削除するため、サーバーはその後の再起動時に関数をロードしません。
DROP FUNCTION
を使用して、CREATE FUNCTION
を使用するのではなく、コンポーネントまたはプラグインによって自動的にインストールされる UDF を削除することはできません。 このような UDF は、UDF をインストールしたコンポーネントまたはプラグインがアンインストールされると、自動的に削除されます。
UDF に関連付けられた共有ライブラリをアップグレードするには、DROP FUNCTION
ステートメントを発行し、共有ライブラリをアップグレードしたあと、CREATE FUNCTION
ステートメントを発行します。 最初に共有ライブラリをアップグレードしてから DROP FUNCTION
を使用すると、サーバーが予期せず停止する可能性があります。