重命名mysql过程
Posted
技术标签:
【中文标题】重命名mysql过程【英文标题】:Rename a mysql procedure 【发布时间】:2012-11-18 15:24:56 【问题描述】:有谁知道重命名mysql存储过程/函数的语法是什么?或者这甚至在 MySQL 中得到支持?我已经在谷歌上搜索了几分钟...
【问题讨论】:
这里记录了forums.mysql.com/read.php?10,274538,274563#msg-274563 作为一种解决方法。可以在此处找到要重命名的存储过程 youdidwhatwithtsql.com/rename-mysql-stored-procedures/819 。如果 bugs.mysql.com/bug.php?id=27793 仍然有效,那么 2007 年提交的功能请求显然仍处于打开状态。 【参考方案1】:试试这个
UPDATE `mysql`.`proc`
SET name = '<new_proc_name>',
specific_name = '<new_proc_name>'
WHERE db = '<database>' AND
name = '<old_proc_name>';
另请注意:如果已为此过程授予用户权限,您还需要更新 procs_priv 中的过程名称。
UPDATE `mysql`.`procs_priv`
SET Routine_name = '<new_proc_name>'
WHERE Db = '<database>' AND
Routine_name = '<old_proc_name>';
FLUSH PRIVILEGES;
来源:MySQL Forums :: Newbie :: Rename Stored Procedure Syntax
【讨论】:
您需要任何特定权限来更改该表吗?' 这个语句有没有变种,不需要指定数据库名,直接使用活动数据库? @Gruber,是的——只需使用函数DATABASE()
获取当前数据库名称,并将其作为条件附加:UPDATE mysql.proc SET name = ..., specific_name = ... WHERE name = ... AND db = DATABASE()
另外不要忘记更改存储过程的调用者事件:每 60 秒按计划更改事件 event_RunSP1 DO call 以上是关于重命名mysql过程的主要内容,如果未能解决你的问题,请参考以下文章