mysql存储过程demo

create PROCEDURE test_procedure(in in1 INT , in in2 INT, out out1 INT,out out2 VARCHAR(255))
READS SQL DATA
BEGIN
	DECLARE v_return_rows INT;	-- 定义变量(int类型)
	DECLARE v_id INT;
	DECLARE v_title VARCHAR(255);
	DECLARE cur_bs_demo CURSOR for SELECT id,demo_title FROM bs_demo;
	-- DECLARE not_found_table_condition CONDITION for 1146;		-- 定义条件(也可称定义变量(条件类型))【条件处理2】
	-- DECLARE EXIT HANDLER for 1146 SET out1 = -1;	-- 定义条件的处理(使用预定义条件)【条件处理1】
	-- DECLARE EXIT HANDLER for not_found_table_condition SET out1 = -2; -- 定义条件的处理(使用自定义条件变量)【条件处理2】
	DECLARE EXIT HANDLER for NOT FOUND CLOSE cur_bs_demo;
	select * from bs_demo;
	select FOUND_ROWS() into v_return_rows;	-- 赋值给变量
	set out1 = v_return_rows;	-- 将变量赋值给返回值
	-- select * from bs_demo_error;	-- 执行错误的sql语句 报1146错误【条件处理 1 2】
OPEN cur_bs_demo;
	REPEAT
		FETCH cur_bs_demo into v_id,v_title;
		IF v_id = 832 THEN
		SET out2 = v_title;
		END IF;
	UNTIL 0 END REPEAT;
CLOSE cur_bs_demo;
	
	
END
-- 创建过程

call test_procedure(1,1,@testJ,@testJO2);	-- 调用过程

select @testJ,@testJO2 ;	-- 显示输出值

show PROCEDURE STATUS like 'test_procedure'; -- 查看过程的状态信息

show create PROCEDURE test_procedure ;	-- 查看过程的定义

drop PROCEDURE if EXISTS test_procedure;	-- 删除过程

 

上一篇:环境变量解释以及在Linux下的环境变量设置


下一篇:javascript – 为declare解释这个令人困惑的dojo教程语法