Does anyone know what is the syntax for renaming a mysql stored procedure/function? Or is this even supported in MySQL? I've been googling this for several minutes...
Asked
Active
Viewed 2.0k times
18
-
1This is documented http://forums.mysql.com/read.php?10,274538,274563#msg-274563 here as a workaround. A stored procedure to rename could be found here http://www.youdidwhatwithtsql.com/rename-mysql-stored-procedures/819 . A feature request with submission in 2007 is apparently still open if this http://bugs.mysql.com/bug.php?id=27793 is still valid. – Anthill Nov 30 '12 at 11:59
1 Answers
27
try this
UPDATE `mysql`.`proc`
SET name = '<new_proc_name>',
specific_name = '<new_proc_name>'
WHERE db = '<database>' AND
name = '<old_proc_name>';
Also note: If have granted privileges to users for this procedure you will need to update the procedure name in procs_priv as well.
UPDATE `mysql`.`procs_priv`
SET Routine_name = '<new_proc_name>'
WHERE Db = '<database>' AND
Routine_name = '<old_proc_name>';
FLUSH PRIVILEGES;
Source: MySQL Forums :: Newbie :: Rename Stored Procedure Syntax

Bill the Lizard
- 398,270
- 210
- 566
- 880

SRIRAM
- 1,888
- 2
- 17
- 17
-
-
Is there a variant of this statement where you don't need to specify the database name, just use the active database? – Gruber Aug 08 '13 at 08:09
-
@Gruber, yes – simply use the function `DATABASE()` to get the current database name, at append it as a condition: `UPDATE mysql.proc SET name = ..., specific_name = ... WHERE name = ... AND db = DATABASE()` – crishoj Nov 03 '15 at 09:30
-
Also don't forgot to change caller events of the stored procedure: alter event event_RunSP1 on schedule every 60 second DO call
; – Mohsen Abasi Feb 08 '18 at 07:21