DELIMITER //
CREATE PROCEDURE filltable()
BEGIN
DECLARE n INT DEFAULT 0;
DECLARE i INT DEFAULT 0;
DECLARE var1 VARCHAR(40);
DECLARE var2 VARCHAR(40);
SELECT COUNT(*) into n FROM mytable;
SET i=1;
WHILE i <= n DO
SELECT name FROM mytable WHERE id=i INTO var1;
IF var1 IS NOT NULL THEN SET var2 = var1;
ELSE UPDATE mytable SET name = var2 WHERE id = i;
SET i = i + 1;
END WHILE;
END//
DELIMITER ;