显示 MySQL 服务器上安装的所有 UDF?

显示 MySQL 服务器上安装的所有 UDF?

如何显示 MySQL 服务器上的所有 UDF(用户定义函数)?(版本 5.0.x)

更新我不想显示所有 UDF 的代码,我只想列出已安装的每个 UDF 的名称。有点像SHOW DATABASES,但针对的是 UDF。

答案1

所有过程都存储在 mysql db 中。我在查找某些内容时通常使用此查询。

从 mysql.proc 中选择 db、name、definer、modified;

答案2

UDF 存储在 mysql DB 的 FUNC 表中。

尝试这个:

 select * from mysql.func;

答案3

根据文档,看起来如果在构建中未启用调试则无法执行此操作。

参见:(本页介绍函数和过程)

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

答案4

如果你想创建语句(比如从备份中恢复,或者在另一个系统上创建相同的 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';

相关内容