主页 > 知识库 > 浅谈MySQL存储过程中declare和set定义变量的区别

浅谈MySQL存储过程中declare和set定义变量的区别

热门标签:地图标注什么软件好用 如何办理400客服电话 地图标注专员入驻 外呼系统线路经常出问题吗 地图标注百度竞价 神行者百货商场地图标注 安阳手机自动外呼系统原理是什么 西藏地图标注改进点 外呼系统怎样才能不封号

在存储过程中常看到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变量原理及应用实例

标签:阜阳 萍乡 酒泉 衡水 张掖 鸡西 贵港 AXB

巨人网络通讯声明:本文标题《浅谈MySQL存储过程中declare和set定义变量的区别》,本文关键词  浅谈,MySQL,存储,过程中,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《浅谈MySQL存储过程中declare和set定义变量的区别》相关的同类信息!
  • 本页收集关于浅谈MySQL存储过程中declare和set定义变量的区别的相关信息资讯供网民参考!
  • 推荐文章