mysql中游标遍历与事务回滚处理问题,求助
发布网友
发布时间:2022-04-08 05:49
我来回答
共1个回答
热心网友
时间:2022-04-08 07:19
--传入id,输出name和sex的存储过程,这里同个id有多条数据,所以需要用到游标。
DELIMITER //
CREATE PROCEDURE p5(IN v_id INT)
BEGIN
DECLARE nodata INT DEFAULT 0;#注意:这个变量声明必须放在游标声明前面
DECLARE v_name VARCHAR(30);
DECLARE v_sex CHAR(3);
DECLARE c_ns CURSOR FOR SELECT NAME,sex FROM t WHERE id = v_id;
DECLARE EXIT HANDLER FOR NOT FOUND SET nodata = 1;#当读到数据的最后一条时,设置变量为1
OPEN c_ns;
WHILE nodata = 0 DO#判断是不是到了最后一条数据
FETCH c_ns INTO v_name,v_sex;
SELECT v_name,v_sex,nodata;
END WHILE;
CLOSE c_ns;
END
//