Hola a todos:
Probando algunas soluciones sin tener que cambiar y/o crear nuevamente la tabla llegue a la siguiente alternativa que al menos a mi me sirvio.
select MAX(CAST((numero) as unsigned)) + 1 into vnfactura from factura;
De esta forma, MySQL cambia el formato del campo numero a unsigned lo que equivaldría a un bigint por defecto, una vez hecho el caso, seleccionas el MAX value y le añades +1, siguiendo la misma lógica del profesor pero sin dropear todas las tablas y funciones asociadas ya creadas, que por lo demás, se recomienda siempre mantener el ID de cada tabla en numérico luego el campo numero/facturaID, como campo adicional.
Espero les ayude.
Saludos,