2010-09-13 132 views
2

我想以下存儲過程添加到我的MySQL數據庫:MySQL存儲過程錯誤

CREATE PROCEDURE logmsg (_Username VARCHAR(50), _Message VARCHAR(80)) 
BEGIN 
    INSERT INTO chatlogs (sender, message) VALUES (_Username, _Message); 
END; 

但其失敗的查詢並返回:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3 

我一直在尋找在google上大概2個小時,根本找不到任何答案。

任何幫助,非常感謝!

回答

2

雖然我不是100%確定的,因爲此刻我無法在MySQL服務器上測試,但我認爲問題出現在分號中。在符合INSERT的行上,您基本上結束了CREATE PROCEDURE語句,這種語法的語法不正確。您必須將分隔符設置爲其他值(例如//),以便能夠在過程的主體中使用分號:

delimiter // 

CREATE PROCEDURE logmsg (_Username VARCHAR(50), _Message VARCHAR(80)) 
BEGIN 
    INSERT INTO chatlogs (sender, message) VALUES (_Username, _Message); 
END// 

delimiter ; 
+0

Thanks !!我認爲它現在有效。 – Daniel 2010-09-13 07:35:50

+0

你說得對。 +1 – NullUserException 2010-09-13 07:36:18