我很茫然,我看不出这样简单的事情会起作用的原因:
CREATE PROCEDURE test()
BEGIN
DECLARE var INT;
SET var = 0;
END
我真的只是测试它,因为我似乎根本无法创造任何东西。我得到的错误信息是:
[查询1中的错误]您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第3行的''附近使用正确的语法
第3行是DECLARE语句。有什么想法吗?
答案 0 :(得分:11)
在任何SQL平台中创建存储过程时,这是一个常见的分隔符问题。默认分隔符为;
,因此当MySQL在第3行看到第一个;
时,它会解析为语句的结尾。您必须将DELIMITER更改为其他内容,并使用新的DELIMITER标记存储过程的结尾。
-- Change DELIMITER TO // instead of ;
DELIMITER //
CREATE PROCEDURE test()
BEGIN
DECLARE var INT;
SET var = 0;
END
//
-- Mark the stored procedure as one statement
DELIMITER ;
-- Change delimiter back to ;