码迷,mamicode.com
首页 > 数据库 > 详细

记一次mysql存储过程的使用

时间:2021-03-02 12:30:20      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:rom   hand   编写   html   tor   http   cursor   分类   roc   

有两个数据库表,社团表和一个社团分类表,后来突然想加个 各个社团种类下的社团数 这样一个字段count,于是用到了存储过程

navicat中编写存储过程可以直接点上方的函数然后选择存储过程

 

 1 CREATE DEFINER=`root`@`localhost` PROCEDURE `countcate`()
 2 BEGIN
 3     -- 定义需要接收游标数据的变量
 4     DECLARE cateid INT(10);
 5     -- 定义结束标志
 6     DECLARE done INT(1) DEFAULT 0;
 7     -- 定义游标
 8     DECLARE cur CURSOR FOR SELECT society_cate.id from society_cate;
 9     -- 将结束标志绑定到游标
10     DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
11     -- 开启游标
12     OPEN cur;
13         -- 开始循环
14     loop_label: LOOP
15          -- 提取游标的数据
16          FETCH cur INTO cateid;
17          -- if判断何时结束循环
18      IF done = 1 THEN
19            LEAVE loop_label; 
20        END IF; 
21          
22          -- 操作sql语句
23          UPDATE society_cate sc SET sc.count = (SELECT count(1) from society WHERE society.society_cate = cateid) WHERE sc.id = cateid;
24          
25         END LOOP loop_label;
26 
27 END

 

学习博客:

https://www.runoob.com/w3cnote/mysql-stored-procedure.html

https://blog.51cto.com/13568014/2117678

记一次mysql存储过程的使用

标签:rom   hand   编写   html   tor   http   cursor   分类   roc   

原文地址:https://www.cnblogs.com/xiaoAP/p/14466840.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!