CREATE PROCEDURE `p_temp1`()
BEGIN
DECLARE v_loop INT DEFAULT 0;
DECLARE v_1 BIGINT UNSIGNED; DECLARE data_1
CURSOR FOR
select id from table_1 ; DECLARE EXIT HANDLER FOR NOT FOUND
SET v_loop=1;
OPEN data_1;
WHILE v_loop = 0 DO FETCH data_1 INTO v_1; insert into temp_lj_4444(name,sp_name) values(v_1,v_loop);
END WHILE;
CLOSE data_1;
END; 我上面这个存储过程, 我的table_1只有一条记录,
但是为什么在执行完这个过程后, 我的 temp_lj_4444表中竟然插入了两条记录。
请大家帮忙看下!
BEGIN
DECLARE v_loop INT DEFAULT 0;
DECLARE v_1 BIGINT UNSIGNED; DECLARE data_1
CURSOR FOR
select id from table_1 ; DECLARE EXIT HANDLER FOR NOT FOUND
SET v_loop=1;
OPEN data_1;
WHILE v_loop = 0 DO FETCH data_1 INTO v_1; insert into temp_lj_4444(name,sp_name) values(v_1,v_loop);
END WHILE;
CLOSE data_1;
END; 我上面这个存储过程, 我的table_1只有一条记录,
但是为什么在执行完这个过程后, 我的 temp_lj_4444表中竟然插入了两条记录。
请大家帮忙看下!
http://blog.chinaunix.net/u/29134/showart_1071056.html
SET v_loop=1;
应该改成DECLARE CONTINUE HANDLER FOR NOT FOUND
SET v_loop=1;