在phpMyAdmin中显示用户定义函数列表的MySQL方法

9

我该如何使用phpmyadmin查看mysql数据库中用户定义的函数列表。

将Mysql数据库从一个服务器迁移到另一个服务器后,用户定义的自定义函数无法正常工作。我需要查看用户定义的函数列表,以检查它们是否存在于数据库中。

Fatal error: db::execute() Could not execute: FUNCTION database.xxx does not exist (SQL: SELECT Function(field) FROM users in file.php on line xx

你正在运行哪个版本的MySQL?根据文档,从5.1版本开始,information_schema.routines表中不包含用户定义的函数。http://dev.mysql.com/doc/refman/5.1/en/routines-table.html 我感到困惑。 - octopusgrabbus
2个回答

26

以下 MySQL 查询将列出用户定义的例程。

select * from information_schema.routines;

5.1版本的文档与此相反。我感到困惑。http://dev.mysql.com/doc/refman/5.1/en/routines-table.html - octopusgrabbus
“用户自定义函数”的定义很重要:在SQL中声明的存储过程是存在的,而来自外部引擎的UDF(编译形式的MySQL插件)则不存在。” - Eugen Rieck
谢谢你澄清。我有点困惑。 - octopusgrabbus
如果我想编辑函数名称,那么这个操作是否可行? - Khalid Dabjan
严格来说,您无法编辑存储过程 - 您只能用经过编辑的版本替换它,这通常也同样有效。如果您想要重新命名它,只需使用新名称创建具有相同定义的存储过程,然后删除旧版即可。 - Eugen Rieck

4
这将为你提供有关自定义函数/过程的所有信息:
select specific_name, definer from information_schema.routines where definer not like '%mysql%';

希望能帮到你!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接