mysql那些事儿之(十三)变量、条件的使用
相关链接:
mysql那些事儿之(一)mysql的安装
http:///database/201210/162314.html;
mysql那些事儿之(二)有关数据库的操作
http:///database/201210/162315.html;
mysql那些事儿之(三)有关数据表的操作
http:///database/201210/162316.html;
mysql那些事儿之(四)数据表数据查询操作
http:///database/201210/162317.html;
mysql那些事儿之(五)操作时间
http:///database/201210/162318.html;
mysql那些事儿之(六)字符串模式匹配
http:///database/201210/163969.html;
mysql那些事儿之(七)深入select查询
http:///database/201210/163970.html;
mysql那些事儿之(八)索引
http:///database/201210/163971.html;
mysql那些事儿之(九)常用的函数
http:///database/201210/164229.html;
mysql那些事儿之(十)触发器一
http:///database/201210/164516.html;
mysql那些事儿之(十一)触发器二
http:///database/201210/164766.html;
mysql那些事儿之(十二)存储过程
http:///database/201210/164795.html
存储过程中可以使用变量、条件
1.定义变量
通过declare可以定义一个变量,不过是局部的。它的作用范围只能在begin...end有效,可以用在嵌套的块中;当然可以用default设置默认值。
sql代码
declare var_name [,.....] type [default value]
示例:定义一个变量
sql代码
declare last_day_start date --定义一个date型的变量,名称为last_day_start
2.变量赋值
可以直接赋值,可以查询赋值。
sql代码
--直接赋值使用set,可以赋常量或者赋表达式
--语法格式
set var_name = expr [,var_name = expr.....]
示例:给上面定义的变量赋值
sql代码
set last_day_start = date_sub(current_date(),interval 1 month) --给变量赋值
通过查询给变量赋值
sql代码
--通过查询给变量赋值
--语法格式
select col_name[,...] into var_name [,....] table_expr
sql代码
--示例 将查询结果给变量赋值
sql代码
declare v_payment decimal(5,2); --定义一个变量
--使用查询给变量赋值
select ifnull(sum(payment.amount),0) into v_payment from payment
3.条件的定义
sql代码
--定义条件的语法格式
declare condition_name condition for condition_value
condition_value:
sqlstate [value] sqlstate_value
| mysql_error_code
4.条件的处理
sql代码
---条件的处理
declare handler_type handler for condition_value [,....] sp_statement
handler_type:
continue | exit | undo
condition_value:
sqlstate [value]
| condition_name
| sqlwarning
| not found
| sqlexception
| mysql_error_code
示例:
sql代码
declare continue handler for sqlstate '23000' set @x2=1
continue 表示继续向下执行;
exit 表示执行中止。
bitscn.com
