如何显示 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';