我试图像在SQL Server上一样在MySQL Workbench上运行一个SQL命令块,但是这是在说:声明在此位置无效。
我在网上看到了许多这样的示例,但我确实不理解为什么会出现此错误。
一些提示?
代码,其中SQL Server示例可以正常运行(完美运行):
MySQL | SQL Server
--------------------- | ------------------------
DECLARE A INT; | DECLARE @A INT;
DECLARE B INT; | DECLARE @B INT;
DECLARE RESULT INT; | DECLARE @RESULT INT;
|
BEGIN | BEGIN
SET A = 1; | SET @A = 1;
SET B = 2; | SET @B = 2;
SET RESULT = A + B; | SET @RESULT = @A + @B;
END; | END;
答案 0 :(得分:1)
不幸的是,MySQL不支持此功能。
您只能在复合语句(即DECLARE
块内)中使用BEGINE .. END
。因此,只能将此类语句放入存储过程,触发器,事件和函数中。
根据docs
本节描述BEGIN ... END复合物的语法 语句和其他可以在存储体内使用的语句 程序:存储的过程和功能,触发器和事件。这些 对象是根据存储在服务器上的SQL代码定义的 供以后调用(请参阅第20章,存储的程序和视图)。
复合语句是可以包含其他块的块; 变量,条件处理程序和游标的声明;和流动 控制构造,例如循环和条件测试。
Also,
DECLARE仅在BEGIN ... END复合语句内允许 并且必须在其他任何语句开始之前。