Mysql 存储过程

老虎说测试 系统运维字数 1537阅读5分7秒阅读模式
摘要Mysql 存储过程

Mysql 存储过程。

Mysql 存储过程

WampServer修改MySQL ROOT用户密码

 文章源自陈学虎-https://chenxuehu.com/article/2016/05/5119.html

  1. #存储过程
  2. /*
  3. 存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合。
  4. 存储过程可以使用INOUT、INOUT类型
  5. 创建格式:
  6. delimiter $$
  7. CREATE PROCEDURE 存储过程名(参数列表)
  8. BEGIN
  9.         SQL语句代码块
  10. END
  11. $$
  12. 注意:
  13. 括号保卫的参数必须总是存在,如果没有参数,也该使用一个孔参数数列()
  14. 删除格式
  15. DROP PROCEDURE IF EXISTS 存数过程名;
  16. */
  17. #创建存储过程,以A、B为例进行练习
  18. DROP PROCEDURE IF EXISTS select_all;
  19. delimiter $$
  20. CREATE PROCEDURE select_all(in a_id smallint)
  21. BEGIN
  22.     SELECT *
  23.     FROM A
  24.     WHERE id = a_id;
  25. END
  26. $$
  27. CALL select_all(1);
  28. #存储过程参数类型讲解
  29. #IN类型
  30. #传进去的参数能够生效
  31. #内部运算的值不能返出去
  32. DROP PROCEDURE IF EXISTS  pr_param_in;
  33. delimiter $$
  34. CREATE PROCEDURE pr_param_in(in id int)
  35. BEGIN
  36.     if(id is not nullthen
  37.         set id = id + 1;
  38.     end if;
  39.         select id as in_inner;
  40. END
  41. $$
  42. set @id = 10;
  43. CALL pr_param_in(@id);
  44. SELECT @id as id_out;
  45. #OUT类型
  46. #传递进来的参数初始值都为 NULL
  47. #能把值返出去
  48. DROP PROCEDURE IF EXISTS  pr_param_out;
  49. delimiter $$
  50. CREATE PROCEDURE pr_param_out(out id int)
  51. BEGIN
  52.     select id as in_inner_1; #初始为 null
  53.     if(id is not nullthen
  54.         set id = id + 1;
  55.         select id as id_inner_2;
  56.     else
  57.         select 1 into id;
  58.     end if;
  59.     select id as id_inner_3;
  60. END
  61. $$
  62. set @id = 10;
  63. CALL pr_param_out(@id);
  64. SELECT @id as id_out;
  65. #INOUT类型
  66. #传进去的参数可以使用
  67. #能把值返出去
  68. DROP PROCEDURE IF EXISTS  pr_param_inout;
  69. delimiter $$
  70. CREATE PROCEDURE pr_param_inout(inout id int)
  71. BEGIN
  72.     select id as in_inner_1;
  73.     if(id is not nullthen
  74.         set id = id + 1;
  75.         select id as id_inner_2;
  76.     else
  77.         select 1 into id;
  78.     end if;
  79.     select id as id_inner_3;
  80. END
  81. $$
  82. set @id = 10;
  83. CALL pr_param_inout(@id);
  84. SELECT @id as id_out;
文章源自陈学虎-https://chenxuehu.com/article/2016/05/5119.html文章源自陈学虎-https://chenxuehu.com/article/2016/05/5119.html

 最后更新:2022-2-17
  • 版权声明:本文为原创文章,转载请附上原文出处链接及本声明。
  • 转载请注明:Mysql 存储过程 | https://chenxuehu.com/article/2016/05/5119.html