博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql -- 存储过程中 declare 和 set 定义变量的区别
阅读量:7034 次
发布时间:2019-06-28

本文共 434 字,大约阅读时间需要 1 分钟。

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;

转载地址:http://ogjal.baihongyu.com/

你可能感兴趣的文章
《3+1团队》【Beta】Scrum meeting 2
查看>>
统计分析与R软件-chapter2-6
查看>>
STM32流水灯
查看>>
[2018/11/14] Java学习
查看>>
leetcode371: Sum of 2 Integers
查看>>
css盒子模型
查看>>
python (10) 文件夹的创建与文件夹的删除
查看>>
hdoj 1728 逃离迷宫
查看>>
c# GridView有关RowClick事件,可单击显示选中的row
查看>>
自定义时间选择器调用时报错
查看>>
EMR问题
查看>>
python——迭代器和生成器
查看>>
Func<T, TResult> Delegate
查看>>
paper122:多尺度与多分辨率的关系
查看>>
set clipboard
查看>>
python algorithm
查看>>
第二章 怎样培养好习惯
查看>>
Python错误和异常概念(总)
查看>>
Appnium学习日记三(安装Android模拟器)
查看>>
模式识别之双目立体视觉---双目立体视觉相关介绍
查看>>