快捷搜索:  汽车  科技

mysql存储过程的创建和使用(MySQL自定义函数与存储过程的创建)

mysql存储过程的创建和使用(MySQL自定义函数与存储过程的创建)出处:https://www.cnblogs.com/huanzi-qch若标题中有“转载”字样,则本文版权归原作者所有。若无转载字样,本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利.

  前言

  日常开发中,可能会用到数据库的自定义函数/存储过程,本文记录MySQL对自定义函数与存储过程的创建、使用、删除的使用

  通用语法

  事实上,可以认为存储过程就是没有返回值的函数,创建/使用/删除都非常相似,在Navicat可视化工具中,自定义函数/存储过程都归类为函数

mysql存储过程的创建和使用(MySQL自定义函数与存储过程的创建)(1)

  定义变量

-- 定义变量,以及赋默认值0 DECLARE c INT(2) DEFAULT(0);  设置变量

-- 设置变量值 SET c = c 1;  流程控制

-- 流程控制,多条件使用 AND/OR IF c < 0 OR c = 0 THEN set c = 0; ELSEIF c IS NULL THEN set c = 0; ELSE set c = c; END IF;  循环语句

-- 循环语句 WHILE c <= 10 DO SET c = c 1; END WHILE;  自定义函数  创建

-- 创建函数 DROP FUNCTION IF EXISTS test_fun; CREATE FUNCTION test_fun ( a INT(2) b INT(2) ) RETURNS INT(2) BEGIN -- 定义变量,以及赋默认值 DECLARE c INT(2) DEFAULT(0); DECLARE i INT(2) DEFAULT(1); -- 流程控制 IF a < 0 OR b < 0 THEN set a = 0; set b = 0; ELSEIF a IS NULL AND b IS NULL THEN set a = 0; set b = 0; ELSE set a = a; set b = b; END IF; -- 设置变量值 SET c = a b; -- 循环 WHILE i <= 10 DO SET c = c i; SET i = i 1; END WHILE; -- return返回值 RETURN c; END;

mysql存储过程的创建和使用(MySQL自定义函数与存储过程的创建)(2)

  使用

-- 使用函数 SELECT test_fun ( 1 2 );

mysql存储过程的创建和使用(MySQL自定义函数与存储过程的创建)(3)

  删除

-- 删除函数 DROP FUNCTION test_fun;

mysql存储过程的创建和使用(MySQL自定义函数与存储过程的创建)(4)

  存储过程  创建

-- 创建存储过程 DROP PROCEDURE IF EXISTS test_pro; CREATE PROCEDURE test_pro ( a INT(2) b INT(2) ) BEGIN -- 定义变量,以及赋默认值 DECLARE c INT(2) DEFAULT(0); -- 流程控制 IF a < 0 OR b < 0 THEN set a = 0; set b = 0; ELSEIF a IS NULL AND b IS NULL THEN set a = 0; set b = 0; ELSE set a = a; set b = b; END IF; -- 设置变量值 SET c = a b; -- 关闭自动提交,mysql每次执行一条语句都默认自动提交,去掉自动提交可大大提高批量操作性能 SET autocommit = 0; -- 循环 WHILE c <= 10 DO -- 执行SQL语句,获取1-4随机数 SELECT floor( 1 rand() * 4 ); SET c = c 1; END WHILE; -- 开启自动提交 SET autocommit = 1; -- 模拟返回值,存储过程不能return SELECT c; END;

mysql存储过程的创建和使用(MySQL自定义函数与存储过程的创建)(5)

  使用

-- 使用存储过程 CALL test_pro ( 1 2 );

mysql存储过程的创建和使用(MySQL自定义函数与存储过程的创建)(6)

mysql存储过程的创建和使用(MySQL自定义函数与存储过程的创建)(7)

  删除

-- 删除存储过程 DROP PROCEDURE test_pro;

mysql存储过程的创建和使用(MySQL自定义函数与存储过程的创建)(8)

  后记

  MySQL对自定义函数与存储过程的创建、使用、删除的使用暂时先记录到这,后续再进行补充

版权声明

作者:huanzi-qch

出处:https://www.cnblogs.com/huanzi-qch

若标题中有“转载”字样,则本文版权归原作者所有。若无转载字样,本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利.

猜您喜欢: