MySql过程中声明变量时出错

MySql过程中声明变量时出错,mysql,sql,database,stored-procedures,Mysql,Sql,Database,Stored Procedures,我正在尝试创建一个简单的存储过程,如下所示: CREATE DEFINER = 'root'@'localhost' PROCEDURE testProcedure() BEGIN DECLARE variableAaa INT; DECLARE variableBbb INT; END 但我从MySql中得到这个错误: 您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近1号线的“末端” 如果我更改变量名: DECLARE variableA

我正在尝试创建一个简单的存储过程,如下所示:

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

  DECLARE variableAaa INT;
  DECLARE variableBbb INT;

END
但我从MySql中得到这个错误:

您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 靠近1号线的“末端”

如果我更改变量名:

DECLARE variableA INT;
DECLARE variableB INT;
我得到一个错误:

您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 第1行“DECLARE variableB INT”附近

等等:

DECLARE variableName INT;
DECLARE variableEmail INT;
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 第1行“DECLARE variableEmail INT”附近

我在PhpMyAdmin中使用MySql 5.5.34,但在Sequel Pro中也是如此


我哪里错了?

看起来这是一个你缺少的定界符问题

所以这个过程应该是这样的

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

  DECLARE variableAaa INT;
  DECLARE variableBbb INT;

END ; //

delimiter ;
在这里,我在MySql上也尝试了同样的方法,效果很好

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

mysql> delimiter ;

当使用phpMyAdmin时,我的代码必须以分隔符开头,即
/
)之前进行编码>。
将被视为独立的mysql语句,因此将过程和语句包含在
您需要在过程和触发器之前定义一个分隔符,以便在处理分隔符内的所有内容时不会产生任何混乱。