mysql如何在没有过程/函数的情况下执行命令块

6rqinv9w  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(351)

我尝试在mysql工作台上运行一个sql命令块,就像在sqlserver上一样,但它告诉我:declare在这个位置无效。
我在网上看到了很多这样的例子,我真的不明白为什么会出现这样的错误。
一些小费?
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;
mnowg1ta

mnowg1ta1#

不幸的是,mysql不支持这一点。你可以用 DECLARE 仅在复合语句中(即 BEGINE .. END 块)。因此,只能将此类语句放在存储过程、触发器、事件和函数中。
根据文件,
本节介绍begin。。。end复合语句和其他可在存储程序体中使用的语句:存储过程和函数、触发器和事件。这些对象是根据存储在服务器上供以后调用的sql代码定义的(参见第20章,存储程序和视图)。
复合语句是可以包含其他块的块;变量、条件处理程序和游标的声明;以及流控制结构,如循环和条件测试。
也,
只允许在begin中声明。。。结束复合语句,并且必须在其开始处,在任何其他语句之前。

相关问题