在存储过程中常看到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定义变量的区别就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
标签:
存储过程,declare,set
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“浅谈MySQL存储过程中declare和set定义变量的区别”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年07月20日
2024年07月20日
- 魔兽世界11.0奶德套装属性是什么 地心之战奶德套装属性介绍
- 魔兽世界防战直升换什么装备 防战归乡纹章装备选择
- Silver阿银.2012-真夜【新世纪】【WAV+CUE】
- 群星2001-谁的?音乐[台湾首版][WAV+CUE]
- 林海2001-月光边境[台湾流动的月光套装再版][WAV+CUE]
- 陈慧珊.2002-爱得起【新艺宝】【WAV+CUE】
- 群星.2009-国语经典101VOL.1最爱恋曲6CD【环球】【WAV+CUE】
- 群星.2012-国语经典101VOL2最爱恋曲6CD【环球】【WAV+CUE】
- 魔兽世界11.0猫德套装属性是什么 地心之战猫德套装属性介绍
- 魔兽世界兽王猎直升换什么装备 兽王猎归乡纹章装备选择
- 魔兽世界11.0熊德套装属性是什么 地心之战熊德套装属性介绍
- 彭佳慧《醉佳时分》[正版CD原抓WAV+CUE]
- 邓丽君15周年黄金母盘1:1直刻[WAV]
- 林忆莲《野花SACD(限量版)》WAV
- 郎朗《Saint-Saens-Carnival of the Animals》[FLAC/分轨][94.26MB]