sql1064

deyfvvtc  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(337)

嘿,我正在为我的学习考试而忍耐。我对程序和功能有问题。

CREATE PROCEDURE testProc()
BEGIN
  DECLARE testNR INT;
END

这是我的测试代码,但每个过程和每个函数都会导致以下失败:

Error: 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
SQLState:  42000
ErrorCode: 1064
Error occurred in:
CREATE PROCEDURE testProc()
BEGIN
    DECLARE testNR INT

我是做错了什么,还是我的ide松鼠有问题?

nwo49xxi

nwo49xxi1#

创建过程时需要更改分隔符;否则 ; 被视为世界末日 CREATE PROCEDURE 声明。
如文件所述,你需要
使用mysql客户端 delimiter 用于更改语句分隔符的命令 ;// 在定义过程时。这使得:;在过程体中使用的分隔符,用于传递到服务器,而不是由mysql本身解释。请参阅第23.1节“定义存储程序”。
不一定要这样 // ; 另一个常见的选择是 $$ .
在您的示例中,这可能看起来像

DELIMITER $$

CREATE PROCEDURE testProc()
BEGIN
  DECLARE testNR INT;
END
$$

DELIMITER ;

相关问题