加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

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

发布时间:2020-12-12 02:48:43 所属栏目:MySql教程 来源:网络整理
导读:《Mysql实例浅谈MySQL存储过程中declare和set定义变量的区别》要点: 本文介绍了Mysql实例浅谈MySQL存储过程中declare和set定义变量的区别,希望对您有用。如果有疑问,可以联系我们。 在存储过程中常看到declare定义的变量和@set定义的变量.简单的来说,decl

《Mysql实例浅谈MySQL存储过程中declare和set定义变量的区别》要点:
本文介绍了Mysql实例浅谈MySQL存储过程中declare和set定义变量的区别,希望对您有用。如果有疑问,可以联系我们。

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

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

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

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

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变量初始化.MYSQL数据库

SET @b=1; MYSQL数据库

(3)然后重复调用这个存储过程.MYSQL数据库

CALL temp();MYSQL数据库

(4)会发现a的值不改变,而b的值会一直增加.MYSQL数据库

所以,总结起来便是开头那句话,@set定义的类似全局变量.MYSQL数据库

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

欢迎参与《Mysql实例浅谈MySQL存储过程中declare和set定义变量的区别》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读