2010-09-13 136 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