хочу извлечь записи из одной таблицы и вставить их в другую, однако такое ощущение что при каждой итерации курсор не сдигается и извлекает одну и ту же запись, в результате получаю на выходе таблицу с одинаковыми строками, различающимися только ID
Помогите, пожалуйста, разобраться
Код процедуры:
BEGIN
DECLARE vId INT(24);
DECLARE vParentId INT(24);
DECLARE vName VARCHAR(255);
DECLARE vRetail INT(24);
DECLARE vUnit VARCHAR(50);
DECLARE vBalance INT(11);
DECLARE resultCount INT DEFAULT 0;
DECLARE a INT DEFAULT 0;
DECLARE cur_temp CURSOR FOR SELECT `id`, `parent_id`, `name`, `retail`, `unit`, `balance` FROM `catalog_items_temp` WHERE 1;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET a = 1;
UPDATE `catalog_items` SET `is_delete` = 1;
OPEN cur_temp;
WHILE 0 = a DO
FETCH cur_temp INTO vId, vParentId, vName, vRetail, vUnit, vBalance;
SELECT COUNT(*) INTO resultCount FROM `catalog_items` WHERE `id` = vId;
IF 1 = resultCount THEN
UPDATE `catalog_items` SET `parent_id` = vParentId, `name` = vName, `retail` = vRetail, `unit` = vUnit, `balance` = vBalance WHERE `id` = id;
ELSE
INSERT INTO `catalog_items` (`id`, `parent_id`, `name`, `retail`, `unit`, `balance`) VALUES (vId, vParentId, vName, vRetail, vUnit, vBalance);
END IF;
END WHILE;
CLOSE cur_temp;
END