mysql中的存储过程常见操做

    最开始写 mysql 存储过程的时候 总是由于这种莫名其妙的缘由报错,百度了说是不太支持,今天再试了一下发现成功了,个人mysql数据的版本是5.7 。如今的一些工具,真的是越作越好啊。努力学习,不能埋没了他们。mysql

DROP PROCEDURE demoOne;	  -- 删除一个存储过程,没有存储过程时会报错

DELIMITER //							-- 将存错过程当中的分隔符 改为 // 
CREATE PROCEDURE demoOne( -- 建立一个存储过程
	IN ywbh VARCHAR(255),  	-- 一个输入参数
	OUT num INT,					 	-- 一个输出参数
	INOUT beizhu INT				-- 一个输入输出参数
	)
	BEGIN
	
		DECLARE base int DEFAULT 5;			-- 定义了一个变量指定变量的默认值为 5
		DECLARE goIndex int DEFAULT 5;	-- 定义可一个变量,变量上方不能有 逻辑块,会报错

		DECLARE EXIT HANDLER FOR 1064 												-- 定义一个异常处理
		SELECT * FROM sys_department where BIANMA = ywbh;			-- 一个简单的查询

		SELECT COUNT(BIANMA) INTO num FROM sys_department;		-- 用into在查询中给变量赋值
		SELECT COUNT(BZ)*base INTO beizhu FROM sys_department;		-- 查询中给变量赋值

		IF num < beizhu THEN 					-- 条件判断, case 跟 when 能够用
			SET beizhu = base;
		ELSEIF num >= beizhu THEN
			SET beizhu = base+base;  		-- 用set给运算的变量赋值
		END IF;

		WHILE goIndex > 0 DO							-- while循环
			SET beizhu = beizhu+ goIndex;
			set goIndex = goIndex - 1;
		END WHILE;

	END //															-- 借宿存储过程
DELIMITER ;														-- 将存储过程当中的分隔符改回 ;

-- 注意改变分隔符的目的是为了,将存储过程一次性的发送出去,而不是被 ; 分割成了不少段以后一段一段的发送

set @beizhu = 1;								-- 定义一个变量
CALL demoOne('8',@num,@beizhu); -- 调用存储过程 第一个数输入参数,第二个是输出参数,第三个是输入输出参数
SELECT @num,@beizhu;						-- 检查存储过程返回的参数的值


SHOW PROCEDURE STATUS where name like 'demo%';  -- 查看存储过程
SHOW CREATE PROCEDURE demoOne;									-- 查看存储过程的原码

    上面就是我今天所用到的一些存储过程的一下操做,在调试这个存储过程的时候最好是吧注释都去掉,在转换分割符的时候 用到了 // 符号,好像它好像会跟注释冲突。sql

相关文章
相关标签/搜索