Este ancho de visualización de "característica" adicional es bastante confuso, porque en otros tipos de columnas como CHAR
es especifica la longitud.
Aquí hay un breve desglose:
- Lo más importante:no especificando el "espacio de almacenamiento" o "número de dígitos". Solo indica cómo se formatean los datos de esta columna. antes de que sea devuelto. INT(5) puede almacenar el mismo valores como INT (16) o INT (255):los tres pueden almacenar todos (y solo) los valores que son válidos para INT. INT(255) no puede almacenar un número con 255 dígitos. El espacio de almacenamiento para todos ellos es el espacio que ocupa un INT.
- Si usa
ZEROFILL
en una columna con ancho de visualización, y la representación de cadena del número almacenado es más corta que el ancho de visualización, se rellenará con ceros a la izquierda. Si es más largo, no pasa nada. Si elige INT(5) y el valor es 13, se devolverá como 00013. Si el valor es 123456, se devolverá como 123456. - Si no usa
ZEROFILL
, no habrá relleno en absoluto (sin espacios y demás) - Si usa
ZEROFILL
, debe tener en cuenta que la columna también seráUNSIGNED
- En cualquier caso, el ancho de visualización se devuelve cuando se consultan los metadatos de la tabla. Entonces, una aplicación podría saber cómo se deben formatear los datos.
No me gusta el ancho de visualización, porque la capa de almacenamiento "conoce" la presentación visual de los datos almacenados. Aparte de esto, no tiene ningún uso que yo sepa.