'Why won't MYSQL procedure properly iterate new ROWS in TABLE using WHILE statement?

I am creating this basic procedure using MySQL Workbench to accept a single input parameter. The table "unique_days" has a single PRIMARY KEY column called "dayid" which currently has a single ROW with a value of 1.

DROP PROCEDURE IF EXISTS dayid_iteration;
DELIMITER $$
CREATE PROCEDURE dayid_iteration(maxdate_final INT)
BEGIN
    DECLARE maxdate_current INT;
    SET @maxdate_current = (SELECT (MAX(dayid) + 1) FROM unique_days);
    DELETE FROM unique_days WHERE dayid > 1;
    
    WHILE (maxdate_current > maxdate_final) DO
        INSERT INTO unique_days (dayid) VALUES (maxdate_current);
        SET maxdate_current = (maxdate_current+1);
    END WHILE;

END$$
DELIMITER ;

The procedure is then called with an integer parameter.

CALL dayid_iteration(11);

The variables are setting properly because I can run a select statement with the variable and it shows the correct new value. The deletion of dayid > 1 also works (Tested by manually adding additional rows, and then running procedure). However, I can't seem to get the WHILE statement to insert new rows with the value provided.

Any help is much appreciated. I searched multiple other questions, and countless forums, but everything looks like it should be working.

Result from calling the procedure

I am expecting the code to CREATE 9 ROWS for a total of 10 ROWS.

The following is included just so you can see the starting values of the table.

SELECT * FROM unique_days;

Starting result from running "SELECT * FROM unique_days;"



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source