MySQLサーバー上のすべてのUDF(ユーザー定義関数)を表示するにはどうすればよいですか? (バージョン5.0.x)
[〜#〜] update [〜#〜]すべてのUDFのコードを表示するのではなく、インストールされている各UDFの名前をリストしたいだけです。 SHOW DATABASES
に似ていますが、UDF用です。
すべてのプロシージャはmysqlデータベースに保存されます。私は通常、何かを探しているときにこのクエリを使用します。
mysql.procから変更されたdb、name、definerを選択します。
UDFはmysqlDBのFUNCテーブルに格納されます。
これを試して:
select * from mysql.func;
ドキュメントによると、ビルドでデバッグを有効にしないとこれを実行できないようです。
参照:(このページは関数とプロシージャ用です)
http://dev.mysql.com/doc/refman/5.0/en/show-procedure-code.html
ステートメントを作成する場合(たとえば、バックアップから復元する場合、または別のシステムで同じUDFを作成する場合)、これを使用できます。
select concat('create function`',`name`,'`returns ',if(`ret`=0,'string','integer'),' soname\'',`dl`,'\';')from mysql.func;
次のようなものを返す必要があります
create function`preg_position`returns integer soname'lib_mysqludf_preg.so';
create function`preg_rlike`returns integer soname'lib_mysqludf_preg.so';
create function`preg_replace`returns string soname'lib_mysqludf_preg.so';
create function`lib_mysqludf_preg_info`returns string soname'lib_mysqludf_preg.so';
create function`preg_capture`returns string soname'lib_mysqludf_preg.so';
create function`preg_check`returns integer soname'lib_mysqludf_preg.so';
create function`unhtml`returns string soname'unhtml.so';