2011-09-13 131 views
3

我從mysql客戶端終端創建存儲過程,一切正常。 但是,當我嘗試調用它,我收到此錯誤信息:存儲過程不存在

ERROR 1305(42000):PROCEDURE XXX不存在

從那以後,我儘量不

重新創建

DROP PROCEDURE IF EXISTS

聲明,我得到這個:

ERROR 1304(42000):PROCEDURE XXX已經存在

有什麼不對?

* 的問題是,我的數據庫HAVE點名稱*

* 實施例(。): 'site.db' - >這是數據庫的錯誤的名稱和MySQL不能查找程序! *

+1

的既然你沒有表現出用來調用的程序,或者用於刪除它的代碼的實際代碼,這是一種很難對任何人幫助。 –

+0

你不能拼寫「XXX」。這是我的猜測,直到你向我們展示一些實際的代碼:) –

+0

你有一個像SQL Developer或Toad這樣的客戶端來確保存儲過程在你的調用創建後退出。你是使用文件中的腳本來執行你的邏輯還是直接輸入sql命令。在解決這個問題之前,我們提供了更多的細節。如果您使用的是腳本文件,您的架構所有者與您的架構所有者相同,我擁有更多訪問權限。 – gsirianni

回答

1

可能你的系統數據庫在不正確的升級或類似的情況下一致性問題。 哪些

select * from information_schema.ROUTINES where routine_name = 'xxx' 
+0

我的查詢是空的。 :( –

0

結果當你正在使用MySQL客戶端,定義過程
你可以使用root用戶(或用戶A)。

可能你使用的是其他用戶調用存儲過程,
咱們說用戶B,它可能導致特權一些差異

如果是這樣的話,您可以授予訪問權限
要查看當前的權限,你可以使用這個命令

show procedure status; 
+0

我只使用root用戶 – Faraona

+0

@Faraona對於這兩種情況?請包括你的商店程序,這可能是問題在哪裏撒謊 – ajreal