Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 27.1Mb
PDF (A4) - 27.1Mb
EPUB - 7.5Mb
HTML Download (TGZ) - 7.2Mb
HTML Download (Zip) - 7.2Mb


MySQL 5.6 リファレンスマニュアル  /  MySQL の拡張  /  MySQL への新しい関数の追加

24.3 MySQL への新しい関数の追加

MySQL に新しい関数を追加する方法は 3 つあります。

  • ユーザー定義関数 (UDF) インタフェースを使用して関数を追加できます。ユーザー定義関数はオブジェクトファイルとしてコンパイルされ、CREATE FUNCTION ステートメントおよび DROP FUNCTION ステートメントを使用して、サーバーに対して動的に追加および削除されます。セクション13.7.3.1「ユーザー定義関数のための CREATE FUNCTION 構文」を参照してください。

  • 関数をネイティブ (組み込み) MySQL 関数として追加できます。ネイティブ関数はコンパイルされて mysqld サーバー内に組み込まれ、永続的に使用できます。

  • 関数を追加するもう 1 つの方法は、ストアドファンクションを作成することです。これらは、オブジェクトコードをコンパイルするのではなく、SQL ステートメントを使用して記述します。ストアドファンクションを記述するための構文は、ここでは説明しません。セクション20.2「ストアドルーチン (プロシージャーと関数) の使用」を参照してください。

コンパイルされた関数を作成するための各方法には、長所と短所があります。

  • ユーザー定義関数を作成する場合、サーバー自体のほかにオブジェクトファイルをインストールする必要があります。関数をコンパイルしてサーバーに配置する場合、それを行う必要はありません。

  • ネイティブ関数の場合は、ソース配布を変更する必要があります。UDF の場合はその必要はありません。UDF をバイナリの MySQL 配布に追加できます。MySQL のソースにアクセスする必要はありません。

  • MySQL の配布をアップグレードする場合、UDF インタフェースが変更される新しいバージョンにアップグレードしないかぎり、以前インストールした UDF を使用し続けることができます。ネイティブ関数の場合、アップグレードするたびに変更を繰り返す必要があります。

どのような方法を使用して新しい関数を追加したかにかかわらず、これらの関数は、ABS()SOUNDEX() などのネイティブ関数と同じように SQL ステートメントから呼び出すことができます。

各種の関数への参照をサーバーが解釈する方法を記述したルールについては、セクション9.2.4「関数名の構文解析と解決」を参照してください。

以降のセクションでは、UDF インタフェースの機能、UDF を作成するための手順、UDF の誤用を防ぐために MySQL が行うセキュリティー予防措置、およびネイティブな MySQL 関数を追加する方法について説明します。

UDF を作成する方法を示すソースコードの例については、MySQL ソース配布に提供されている sql/udf_example.cc ファイルを参照してください。


User Comments
Sign Up Login You must be logged in to post a comment.