Errores #20163
Tamaño de campos enteros en MySQL
Estado: | Nueva | Fecha de inicio: | 2011-12-29 | |
---|---|---|---|---|
Prioridad: | Normal | Fecha fin: | ||
Asignado a: | - | % Realizado: | 0% |
|
Categoría: | - | Tiempo dedicado: | - | |
Versión prevista: | - | |||
Ref. DESIG (Jira): |
Descripción
Cuando Genaro está generando código para tablas de MySQL (al menos, no lo he comprobado con otros SBGDs), los campos de tipo entero (TINYINT, SMALLINT, MEDIUMINT, INT y BIGINT) los convierte en tipo de datos gvHidraInteger con número de dígitos puesto al número de bytes en los que MySQL almacena esos datos (1, 2, 3, 4 y 8, respectivamente). Esto es incorrecto. Es posible que MDB2 no devuelva el número de dígitos especificado en la tabla MySQL, típicamente mostrado entre paréntesis tras el tipo (INT, SMALLINT, TINYINT, etc.)... En dicho caso, debería usarse el número de dígitos máximo para esos tipos de datos, es decir: TIPO;DIGITOS SIN SIGNO;DIGITOS CON SIGNO TINYINT;3;4 SMALLINT;5;6 MEDIUMINT;8;8 INT;10;11 BIGINT;20;20 Eso considerando que el signo - contase como un dígito más (no sé aún si es así en gvHidra). Fuente de referencia: http://dev.mysql.com/doc/refman/5.5/en/numeric-types.html
Histórico
Actualizado por Toni Felix Ferrando hace más de 12 años
- Añadido Fichero int_length.diff
Jose Manuel Ferrer. El fichero adjunto implementa esto, probablemente con independencia del SGBD utilizado (eso espero).
Actualizado por Toni Felix Ferrando hace más de 12 años
- Añadido Fichero int_length_v2.diff
*Jose Manuel Ferrer.*Modifico el parche para que obtenga correctamente si el entero es con signo o sin signo.
Actualizado por Toni Felix Ferrando hace más de 12 años
- Añadido Fichero fields_length.diff
Jose Manuel Ferrer. El nuevo parche (fields_length.diff) no sólo pone la anchura de los campos enteros, también pone la anchura de los campos de tipo fecha, hora y fecha+hora.