永发信息网

mysql declare和set有什么区别啊?

答案:2  悬赏:20  手机版
解决时间 2021-02-13 07:14
mysql declare和set有什么区别啊?
最佳答案
declare 定义变量

set 为变量赋值

下面是一个例子:

mysql> DELIMITER //
mysql> CREATE PROCEDURE TestWhile()
-> BEGIN
-> DECLARE v_index INT;
->
-> SET v_index = 0;
->
-> WHILE v_index < 5 DO
-> SET v_index = v_index + 1;
-> SELECT v_index;
-> END WHILE;
->
-> END//
Query OK, 0 rows affected (0.00 sec)
全部回答
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;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
三国中及时作出变化而胜利的例子或者别的例子
小苹果双语幼儿园(临沂河东区)地址在什么地方
都昌街道民政服务中心地址有知道的么?有点事
求exo的专辑 《the war》百度云免费高音质!
二旺装饰在什么地方啊,我要过去处理事情
男生断掌有什么说法
阅读下面的文字.回答下题. 蝼蚁壮歌 金 马 兴
智慧宝贝幼儿园(临沂沂南县)地址有知道的么?
三道班这个地址在什么地方,我要处理点事
月壤的热物性有哪些?或者解释一下热物性!谢
明星宝贝幼儿园(临沂河东区)地址在什么地方,
贝优幼儿园(临沂河东区)地址好找么,我有些事
南昌大学专科录取分数线
联合幼儿园(临沂河东区)地址在什么地方,我要
折什么颜色的星星送给朋友最好,应该折多少个
推荐资讯
“悬停在绳上静止的小球,绳对小球的拉力和小
红梅超市怎么去啊,有知道地址的么
小亮与父母一同乘火车,火车车厢里每排有左、
Dahon(大行)北京海淀区西三旗大行生活馆地址
汽车发动机链条有异响,有车友可以回答一下这
果树最佳种植时间是多久
求karneval狂欢节目前出来的角色歌的歌名
下列各项中,属于计算机处理设备的是()A.鼠
psp 1000 16gb记忆棒不能储存进度
跑男中最新一期鹿晗说的“dǜ了”是什么意思
新城旅社(徐州沛县)地址有知道的么?有点事想
伊丽美容护肤地址在什么地方,我要处理点事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?