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 ;