我尝试运行一个命令来删除一个过程:
DROP PROCEDURE create_datetable
通过这样做我得到一个警告:
1304 PROCEDURE create_datetable already exists
之后,当我尝试创建一个具有相同名称的新程序时,我收到相同的警告。
这是什么意思?
答案 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。