【问题标题】:Rename a mysql procedure重命名mysql过程
【发布时间】:2012-11-18 15:24:56
【问题描述】:

有谁知道重命名mysql存储过程/函数的语法是什么?或者这甚至在 MySQL 中得到支持?我已经在谷歌上搜索了几分钟...

【问题讨论】:

标签: mysql rename procedure


【解决方案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 ;
猜你喜欢
  • 2013-04-11
  • 1970-01-01
  • 2018-09-24
  • 1970-01-01
  • 2011-01-14
  • 2015-07-26
  • 2012-12-12
  • 2022-01-01
相关资源
最近更新 更多