Я пытаюсь выполнить процедуру для заполнения таблицы из другой таблицы.
Но когда я вызываю процедуру, она заполняет нулями другую таблицу.
Процедураследующее:
DELIMITER //
CREATE PROCEDURE invent()
BEGIN
DECLARE bDone INT;
DECLARE hostname VARCHAR(100);
DECLARE curs CURSOR FOR
select hostname from GetInvent;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET bDone = 1;
DROP TABLE Persons;
CREATE TABLE Persons (
`id` int(11) NOT NULL AUTO_INCREMENT,
`hostname` VARCHAR(100),
PRIMARY KEY (`id`)
);
SET bDone = 0;
OPEN curs;
igmLoop: loop
FETCH curs INTO hostname;
if bDone = 1 then leave igmLoop; end if;
INSERT INTO Persons(hostname) VALUES (hostname);
END LOOP igmLoop;
CLOSE curs;
SELECT * FROM Persons;
END //
DELIMITER ;
В GetInvent есть около 50.000 записей работы цикла, потому что в таблице Persons я получаю около 50.000 после вызова процедуры, но с именем хоста равным Null.
Есть идеи?