gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章浅谈MySQL存储过程中declare和set定义变量的区别由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

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

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

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

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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定义变量的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

最后此篇关于浅谈MySQL存储过程中declare和set定义变量的区别的文章就讲到这里了,如果你想了解更多关于浅谈MySQL存储过程中declare和set定义变量的区别的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com