创建程序

Kez*_*zer 5 mysql

我不知所措,我看不出这样简单的原因,这不会起作用:

CREATE PROCEDURE test()
BEGIN
    DECLARE var INT;
    SET var = 0;
END
Run Code Online (Sandbox Code Playgroud)

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

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

第3行是DECLARE语句.有任何想法吗?

Yad*_*ada 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 ;
Run Code Online (Sandbox Code Playgroud)