2013-01-01 47 views
14

可能重複:
Error with mysql procedures ERROR 1304 & ERROR 1305已經存在的丟棄程序?

我嘗試運行命令來刪除一個程序:

DROP PROCEDURE create_datetable 

通過這樣做,我得到了一個警告:

1304 PROCEDURE create_datetable already exists 

之後,當我嘗試創建一個具有相同名稱的新過程時,我得到相同的警告。

這是什麼意思?

+0

你正在使用什麼'procedureName'? – 2013-01-01 11:53:31

+0

如果它有什麼不同,我編輯了這篇文章。 – MikkoP

+0

您是否按照@bonCodigo的建議嘗試了'DROP PROCEDURE IF EXISTS'? – 2013-01-01 11:56:10

回答

28

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

+0

用這個我得到'PROCEDURE不存在'。當我試圖創建一個時,它也是這樣說的。當我嘗試使用它時,它說該過程不存在。 – MikkoP

+0

@MikkoP我已經通過添加額外的例程來更新答案,你可以嘗試。請給一個鏡頭和評論。 – bonCodigo

相關問題