Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
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
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.