问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-23 02:54

我来回答

2个回答

热心网友 时间:2022-04-08 12:19

MySQL存储过程中,定义变量有两种方式:
1.使用set或select直接赋值,变量名以 @ 开头.
例如:set @var=1;
可以在一个会话的任何地方声明,作用域是整个会话,称为会话变量。

2.以 DECLARE 关键字声明的变量,只能在存储过程中使用,称为存储过程变量,例如:
DECLARE var1 INT DEFAULT 0;
主要用在存储过程中,或者是给存储传参数中。

两者的区别是:
在调用存储过程时,以DECLARE声明的变量都会被初始化为 NULL。而会话变量(即@开头的变量)则不会被再初始化,在一个会话内,只须初始化一次,之后在会话内都是对上一次计算的结果,就相当于在是这个会话内的全局变量。

在存储过程中,使用动态语句,预处理时,动态内容必须赋给一个会话变量。
例:
set @v_sql= sqltext;
PREPARE stmt FROM @v_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

热心网友 时间:2022-04-08 13:37

declare为对变量进行声明,声明必须制定变量的数据类型,只能写在过程的前面set是对变量赋值,可以放在过程的任何地方对没有declare声明过的变量赋值,该变量必须以加上@号,否则会报错DECLAREaINT;--如果放在下面语句之后,会报错SETa=(SELECTidFROMtb);--如果没有前面的声明,会报错SET@b=(SELECTtitleFROMtb);
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 软化水装置操作方法 mysql存储过程中 declare 和 set 定义变量的区别 软化水水处理设备 mysql存储变量怎么定义 mysql存储过程函数怎么定义变量 次常用字1000。 《现代汉语常用字表》 次常用字(1000字) 笔画顺序表 二画 匕 刁 四画 丐 歹 戈 夭 仑 讥 简体中文,日常常用字有多少个? 汉字一共有多少个? 双卡怎么申请两个QQ邮箱? 《现代汉语常用字表》次常用字( 1000字)的组词有吗? 五笔一千字常用字 我有QQ号怎样才能申请QQ邮箱? 中国人常用汉字单字个数有多少? 请哪位高人告诉我中文口语中一千左右的最常用字? 我们中国汉字有多少个?常用的多少? 现代汉语常用字表2500个常用字和1000个次常用字的音序顺序 最适合幼儿学认的1000常用汉字 现在买什么皮鞋好? 现在买什么皮鞋好? 一个QQ邮箱可以申请两个邮箱吗?怎么申请? MySQL存储过程中declare和set定义变量的区别 洗衣房为什么要用全自动软化水设备 mysql 存储过程如何声明变量 纯化水设备软化水装置管道连接有什么要求? mysql 怎么定义变量 全自动软水器(软化水设备)是怎样选型? MYSQL存储过程的变量问题。 锅炉软水装置的原理是什么,反冲洗又是怎么工作的 MySQL的存储过程如何让列名做变量 全自动软化水装置有什么技术要求? mysql只能在存储过程中定义变量吗 软化水处理设备的工作原理 什么是软化水装置?如果要用软化水装置到哪里去找? mysql 存储过程如何定义datetime类型的变量或者该怎么处理 物化水处理装置和软化水装置一样吗 在MySQL的存储过程中,可以使用DECLARE语句来定义处理程序? 什么是软化水处理设备? mysql存储过程中定义变量出错。 mysql 进:在存储过程中用select 如何给变量赋值 软化水系统的组成及树脂再生?