26

可能重复:
mysql 程序错误 ERROR 1304 & ERROR 1305

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

DROP PROCEDURE create_datetable

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

1304 PROCEDURE create_datetable already exists

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

这是什么意思?

4

1 回答 1

45

参考:丢弃程序

编码:

DROP PROCEDURE IF EXISTS procedureName;
...

编辑:

您可以尝试重命名该过程,然后尝试按照这篇文章删除它:重命名 mysql 过程

尝试这个:

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和 post2:Drop all stored procedures in MySQL or using temporary stored procedures

于 2013-01-01T11:54:09.130 回答