日期:2014-05-16 浏览次数:20712 次
存储过程中可以使用变量、条件
1.定义变量
通过DECLARE可以定义一个变量,不过是局部的。它的作用范围只能在BEGIN...END有效,可以用在嵌套的块中;当然可以用default设置默认值。
DECLARE var_name [,.....] type [DEFAULT value]
示例:定义一个变量
DECLARE last_day_start DATE --定义一个DATE型的变量,名称为last_day_start
2.变量赋值
可以直接赋值,可以查询赋值。
--直接赋值使用set,可以赋常量或者赋表达式 --语法格式 SET var_name = expr [,var_name = expr.....]
示例:给上面定义的变量赋值
SET last_day_start = DATE_SUB(CURRENT_DATE(),INTERVAL 1 MONTH) --给变量赋值
??????????通过查询给变量赋值
--通过查询给变量赋值 --语法格式 SELECT col_name[,...] INTO var_name [,....] table_expr
--示例 将查询结果给变量赋值
?
DECLARE v_payment DECIMAL(5,2); --定义一个变量 --使用查询给变量赋值 SELECT IFNULL(SUM(payment.amount),0) INTO v_payment FROM payment
?3.条件的定义
--定义条件的语法格式 DECLARE condition_name CONDITION FOR condition_value condition_value: SQLSTATE [VALUE] sqlstate_value | mysql_error_code
?4.条件的处理
---条件的处理 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
?示例:
DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @x2=1
?CONTINUE 表示继续向下执行;
?EXIT 表示执行中止。
?