2016-07-29 59 views
0

下面的MySQL程序代碼在第1行標記錯誤。如果我刪除下面的存儲過程的參數,它編譯罰款。空的MySQL存儲過程沒有編譯


DELIMITER $$ 
CREATE PROCEDURE test.USER_INPUT(@TITLE VARCHAR(20), @SEVERITY INT, @CLOSEDATE DATETIME) 
BEGIN  
END 
DELIMITER ; 

什麼是錯在上面的代碼?問題究竟在哪裏?

回答

1

有兩個問題:

  1. 你以後END
  2. 缺少一個分隔符你的參數名稱中包含無效字符@。請引用列名稱,如果您想保留@或刪除它。

什麼工作是:

DELIMITER $$ 
CREATE PROCEDURE test.USER_INPUT(TITLE VARCHAR(20), SEVERITY INT, CLOSEDATE DATETIME) 
BEGIN  
END$$ 
DELIMITER ; 

還要確保數據庫test存在。

+0

實際上我想讓程序接受用戶輸入。即字符'@'。我試圖用分隔符做到這一點,但不能。你知道如何做到這一點? – Prakash