Estás usando mal los tipos de dato.
El número que aparece en la definición de INT, no se usa para determinar la longitud de las cifras, sino para la justificación de la columna (el escribir los numeros a la derecha) en las consultas por consola. No tiene otros efectos.
La longitud o rango de representación de un número está dado por el tipo de dato, y si usas USIGNED son:
Cita: - TINYINT: 0 a 255.
- SMALLINT: 0 a 65.535.
- MEDIUMINT: 0 a 16.777.215
- INT: 0 a 4.294.967.295.
- BIGINT: 0 a 18.446.744.073.709.551.615
Si observas, verás que un INT sólo puede representar un valor de hasta 10 dígitos, y no todos ellos.
Hay dos soluciones: Una correcta y otra incorrecta.
La correcta es usar un VARCHAR(14), ya que es la longitud mayor que puede tener un número, incluyendo prefijos.
La incorrecta es usar un BIGINT. ¿Por qué? Porque un numero telefónico tiene ceros al inicio en algunos casos, y un número no los tiene. El sistema los elimina.
¿Se entiende?