• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    浅谈MySQL存储过程中declare和set定义变量的区别
    POST TIME:2021-10-18 21:32

    在存储过程中常看到declare定义的变量和@set定义的变量。简单的来说,declare定义的类似是局部变量,@set定义的类似全局变量。

    1、declare定义的变量类似java类中的局部变量,仅在类中生效。即只在存储过程中的begin和end之间生效。

    2、@set定义的变量,叫做会话变量,也叫用户定义变量,在整个会话中都起作用(比如某个应用的一个连接过程中),即这个变量可以在被调用的存储过程或者代码之间共享数据。如何理解呢?可以看下面这个简单例子,很好理解。 

    (1)先执行下面脚本,创建一个存储过程,分别有declare形式的变量和@set形式的变量

    DROP PROCEDURE IF EXISTS temp;
    DELIMITER //
    CREATE PROCEDURE temp()
    BEGIN
      DECLARE a INT DEFAULT 1;
    
      SET a=a+1;
      SET @b=@b+1;
      SELECT a,@b;
    
    END
    //
    DELIMITER ;

    (2)接着为b变量初始化。

    SET @b=1;

    (3)然后重复调用这个存储过程。

    CALL temp();

    (4)会发现a的值不改变,而b的值会一直增加。

    所以,总结起来就是开头那句话,declare定义的类似是局部变量,@set定义的类似全局变量。

    以上这篇浅谈MySQL存储过程中declare和set定义变量的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • win10下mysql 8.0.12 安装及环境变量配置教程
    • MySQL设置global变量和session变量的两种方法详解
    • mysql 5.6.23 安装配置环境变量教程
    • MySQL8新特性:持久化全局变量的修改方法
    • mysql查询语句中用户变量的使用代码解析
    • MySQL 声明变量及存储过程分析
    • 几个比较重要的MySQL变量
    • MySQL使用变量实现各种排序
    • MySQL变量原理及应用实例
    上一篇:Navicat for MySQL导出表结构脚本的简单方法
    下一篇:Mysql支持的数据类型(列类型总结)
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信