创建程序

时间:2010-02-28 13:53:13

标签: mysql

我很茫然,我看不出这样简单的事情会起作用的原因:

CREATE PROCEDURE test()
BEGIN
    DECLARE var INT;
    SET var = 0;
END

我真的只是测试它,因为我似乎根本无法创造任何东西。我得到的错误信息是:

  

[查询1中的错误]您的SQL语法出错;检查与MySQL服务器版本对应的手册,以便在第3行的''附近使用正确的语法

第3行是DECLARE语句。有什么想法吗?

1 个答案:

答案 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 ;