Mysqlあれらの事の(十三)変数、条件の使用
1576 ワード
ストレージ・プロシージャで使用できる変数、条件
1.変数の定義
DECLAREでは変数を定義できますが、ローカルです.その作用範囲はBEGINでしかありません...ENDは有効で、ネストされたブロックで使用できます.もちろんdefaultでデフォルト値を設定できます.
例:変数の定義
2.変数付与
直接値を割り当てることができ、値をクエリーすることができます.
例:上記で定義した変数に値を割り当てる
クエリーによる変数の割り当て
3.条件の定義
4.条件の処理
例:
CONTINEは、下に進むことを示します.
EXITは実行中止を示します.
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
CONTINEは、下に進むことを示します.
EXITは実行中止を示します.