
17/11/2009, 07:03
|
| | Fecha de Ingreso: octubre-2008
Mensajes: 151
Antigüedad: 16 años, 5 meses Puntos: 1 | |
Respuesta: unir tablas Cita:
Iniciado por gnzsoloyo Ese problema se te produjo porque no has verificado correctamente cual es el valor más alto que había en la tabla, antes de definir cuál es el tipo numérico conveniente.
Evidentemente, todos los valores no nulos superaban el 127, entonces, como el rango de representación de un TINYINT con signo es de -128 a 127, debiste haber usado un MEDIUMINT y no un TINYINT.
En todo caso, si ningún valor superaba el 255, y no tenías valores negativos ni los esperas tener, podrías haber usado un TINYINT UNSIGNED, cuyo rango es 0 a 255.
Ahora bien, como al cambiar el tipo de columna, el valor supera el rango, MySQL le asigna automáticamente el máximo posible para esa columna, el cual es 127.
¿Se entiende el problema?
No hay posibilidad de vuelta atrás en la conversión. Si conservas una copia de la tabla, deberás usarla para recuperar los datos. En caso contrario, deberás reingresarlos.
Por estas y otras razones es que una base de datos no debe modificarse cuando ya está en trabajo; y también por estas razones es que hay que planear bien cuál es el rango de datos necesario y suficiente para definir desde el principio el tipo de columnas correcto, siempre pensando a futuro.
Un cambio estructural en una base trabajando suele producir problemas grandes casi siempre (yo ya he tenido esas experiencias). sisi lo entendi y es lo q suponia... tengo una copia de la tabla pero uan version un poco mas vieja en otra base de datos, me gustaria saber como hacer para recuperar ese campo solo, copiandolo de la base copia a la original.
muchas gracias |