我想在mysql过程中为params变量添加连接值。但是mysql说它有语法错误。我在这里做的语法错误是什么?
SET parms =CONCAT('s','sa');
DECLARE CONTINUE HANDLER FOR NOT FOUND SET exit_loop = TRUE;
Mysql抱怨错误在第二行。但我认为我在第一行做错了。
答案 0 :(得分:3)
您的问题是您将DECLARE
放在错误的位置。
<强> DECLARE Syntax 强>
DECLARE只允许在BEGIN ... END复合语句中使用 并且必须在开始之前,在任何其他陈述之前。
声明的更多内容必须遵循特定的顺序:
话虽如此,这样做会很好
DECLARE parms VARCHAR(32);
DECLARE exit_loop INT;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET exit_loop = TRUE;
SET parms = CONCAT('s','sa');
我们试一试:
mysql> DELIMITER // mysql> CREATE PROCEDURE myproc() -> BEGIN -> DECLARE parms VARCHAR(32); -> DECLARE exit_loop INT; -> DECLARE CONTINUE HANDLER FOR NOT FOUND SET exit_loop = TRUE; -> -> SET parms = CONCAT('s','sa'); -> SELECT parms; -> END -> // Query OK, 0 rows affected (0.00 sec) mysql> DELIMITER ; mysql> CALL myproc(); +-------+ | parms | +-------+ | ssa | +-------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.00 sec)