mysql数据库怎么使用游标
1、新建一个cj表,输入数据,zong酆璁冻嘌fen为0,下面用游标来计算总分,并且更新cj表的zongfen字段。CRE帆歌达缒ATETABLE`cj`(`cid`int(11)NOTNULLAUTO_INCREMENT,`yuwen`int(11)NOTNULL,`shuxue`int(11)NOTNULL,`yingyu`int(11)NOTNULL,`zongfen`int(11)NOTNULL,PRIMARYKEY(`cid`),KEY`zid`(`zongfen`))ENGINE=InnoDBAUTO_INCREMENT=4DEFAULTCHARSET=utf8
2、在当前数据库中建立一个存储过程。DELIMITER $$CREATE PROCEDURE `test`.`cj_zongfen`() BEGIN #过程代码 END$$DELIMITER ;
3、在过程中定义3个局部变量,把游标查询成绩存入到变量中。DELIMITER $$CREATE PROCEDURE `test`.`cj_zongfen`() BEGIN DECLARE yw INT;#语文成绩 DECLARE sx INT;#数学成绩 DECLARE yy INT;#英语成绩DECLARE d INT; END$$DELIMITER ;
4、定义nf变量,当游标查询完毕后nf的值为false,退出游标循环。DECLARE nf BOOLEAN DEFAULT TRUE; DECLARE zongfen_cursor CURSOR FOR SELECT yuwen,shuxue,yingyu,cid FROM cj; DECLARE CONTINUE HANDLER FOR NOT FOUND SET nf=FALSE; OPEN zongfen_cursor;
5、把游标当前查询的值存入到变量中,修改表中zongfen的值。FETCH zongfen_cursor INTO yw,sx,yy,d;WHILE nf DOUPDATE cj SET zongfen=yw+sx+yy WHERE cid=d;FETCH zongfen_cursor INTO yw,sx,yy,d;END WHILE;
6、保存存储过程,执行call cj_zong分();查看数据,每一个记录总分存入到zongfen字段中。
7、存储过程完整代码.觊皱筠桡CREATE DEFINER=`root`@`localhost` PROCEDURE `cj_zongfen`()B呶蓟鹭毵EGIN DECLARE yw INT;#语文成绩 DECLARE sx INT;#数学成绩 DECLARE yy INT;#英语成绩 DECLARE d INT; DECLARE nf BOOLEAN DEFAULT TRUE; DECLARE zongfen_cursor CURSOR FOR SELECT yuwen,shuxue,yingyu,cid FROM cj; DECLARE CONTINUE HANDLER FOR NOT FOUND SET nf=FALSE; OPEN zongfen_cursor; FETCH zongfen_cursor INTO yw,sx,yy,d; WHILE nf DO UPDATE cj SET zongfen=yw+sx+yy WHERE cid=d; FETCH zongfen_cursor INTO yw,sx,yy,d; END WHILE; END$$