已经存在的丢弃程序?

时间:2013-01-01 11:48:04

标签: mysql stored-procedures

  

可能重复:
  Error with mysql procedures ERROR 1304 & ERROR 1305

我尝试运行一个命令来删除一个过程:

DROP PROCEDURE create_datetable

通过这样做我得到一个警告:

1304 PROCEDURE create_datetable already exists

之后,当我尝试创建一个具有相同名称的新程序时,我收到相同的警告。

这是什么意思?

1 个答案:

答案 0 :(得分:38)

参考:Drop Procedure

代码:

DROP PROCEDURE IF EXISTS procedureName;
...

编辑:

您是否可以尝试重命名该过程,然后尝试按照此帖子删除它:Rename a mysql procedure

试试这个:

UPDATE `mysql`.`create_DataTable`
SET name = '<new_proc_name>',
specific_name = '<new_proc_name>'
WHERE db = '<database>' AND
name = '<old_proc_name>';

另请注意:如果已为此过程授予用户权限,则还需要更新newProcedure中的过程名称。

UPDATE `mysql`.`create_DataTable`
SET Routine_name = '<new_proc_name>'
WHERE Db = '<database>' AND
  Routine_name = '<old_proc_name>';
 FLUSH PRIVILEGES;

您是否可以自由删除所有程序?如果是这样,请试试这篇文章:Drop all stored procedures in MySQL or using temporary stored procedures和帖子2:Drop all stored procedures in MySQL or using temporary stored procedures