web-dev-qa-db-ja.com

MySQLサーバーにインストールされているすべてのUDFを表示しますか?

MySQLサーバー上のすべてのUDF(ユーザー定義関数)を表示するにはどうすればよいですか? (バージョン5.0.x)

[〜#〜] update [〜#〜]すべてのUDFのコードを表示するのではなく、インストールされている各UDFの名前をリストしたいだけです。 SHOW DATABASESに似ていますが、UDF用です。

5
Rory

すべてのプロシージャはmysqlデータベースに保存されます。私は通常、何かを探しているときにこのクエリを使用します。

mysql.procから変更されたdb、name、definerを選択します。

2
kashani

UDFはmysqlDBのFUNCテーブルに格納されます。

これを試して:

 select * from mysql.func;
10
nick

ドキュメントによると、ビルドでデバッグを有効にしないとこれを実行できないようです。

参照:(このページは関数とプロシージャ用です)

http://dev.mysql.com/doc/refman/5.0/en/show-procedure-code.html

1
LapTop006

ステートメントを作成する場合(たとえば、バックアップから復元する場合、または別のシステムで同じ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';