MySql过程中的DECLARE变量错误 [英] Error on DECLARE variable in MySql procedure

查看:107
本文介绍了MySql过程中的DECLARE变量错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个像这样的简单存储过程:

I'm trying to create a simple stored procedure like this:

CREATE DEFINER = 'root'@'localhost'
PROCEDURE testProcedure()
BEGIN

  DECLARE variableAaa INT;
  DECLARE variableBbb INT;

END

但我从MySql收到此错误:

but I get this error from MySql:


您的SQL语法有误;请查看
与您的MySQL服务器版本相对应的手册,以获取正确的语法以在第1行的'END'附近使用

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 'END' at line 1

如果我更改变量名称:

DECLARE variableA INT;
DECLARE variableB INT;

我遇到错误:


您的SQL语法有错误;请查看
与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的'DECLARE variableB INT'附近使用

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 'DECLARE variableB INT' at line 1

依此类推:

DECLARE variableName INT;
DECLARE variableEmail INT;




您的SQL语法有误;请查看
对应于您的MySQL服务器版本的手册以获取正确的语法,以在第1行的'DECLARE variableEmail INT'附近使用

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 'DECLARE variableEmail INT' at line 1

我将MySql 5.5.34与PhpMyAdmin一起使用,但与Sequel Pro相同。

I'm using MySql 5.5.34 with PhpMyAdmin, but it's the same with Sequel Pro.

我在哪里错了?

推荐答案

看起来像是您缺少的分隔符问题

Looks like its an issue of delimiter which you are missing

因此,该过程应

delimiter //
CREATE DEFINER = 'root'@'localhost'
PROCEDURE testProcedure()
BEGIN

  DECLARE variableAaa INT;
  DECLARE variableBbb INT;

END ; //

delimiter ;

在这里我在MySql上尝试了相同的方法,并且有效

Here I tried the same on MySql and it works

mysql> delimiter //
mysql> create procedure testProcedure()
    -> begin
    -> DECLARE variableAaa INT;
    -> DECLARE variableBbb INT;
    -> end; //
Query OK, 0 rows affected (0.02 sec)

mysql> delimiter ;

这篇关于MySql过程中的DECLARE变量错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆