Para actualizar un consecutivo,
Sin necesidad de realizar un ciclo, podemos actualizar un campo dado, comenzando con su maximo valor y que de ahi continue en consecutivo:
Creamos la tabla
CREATE TABLE tabla_prueba (id integer(4), valor varchar(40));
Insertamos registros a la tabla:
INSERT INTO tabla_prueba (id, valor) values(1,'valor1'),(2,'valor2'),(3,'valor3'),
(0,'valor4'),(0,'valor5'),(0,'valor5');
Insertamos 3 registros con valor 0 en el campo id.
Actualizaremos esos registros que quedaron en 0, con un consecutivo.
UPDATE tabla_prueba as a, (SELECT @numeroConsecutivo:= (SELECT max(id) FROM tabla_prueba)) as tabla
SET a.id=@numeroConsecutivo:=@numeroConsecutivo+1 WHERE a.id = 0;
Cabe mencionar y como podrán observar que solo seleccione los campos con id = 0 para que se notara, si no, hubiera actualizado todos los registros con consecutivo a partir del 3, ya que era el máximo en su momento.