set @pk:=0;
update
your_table
set [email protected]:[email protected]+1
order by pk; <-- order by original pk
En mi opinión, tener una clave sustituta grande está bien. Probablemente es poco probable que use todo el entero máximo permitido. Considere que puede duplicarlo usando unsigned.