Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

no me funciona al intentar cambiar un campo tipo entero en mysql

Estas en el tema de no me funciona al intentar cambiar un campo tipo entero en mysql en el foro de Mysql en Foros del Web. Estoy intentando cambiar un campo tipo entero donde lo cree de esta forma int(10) y quiero cambiarlo a esto int(15) pero no me funciona, intento ...
  #1 (permalink)  
Antiguo 08/07/2013, 11:26
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
no me funciona al intentar cambiar un campo tipo entero en mysql

Estoy intentando cambiar un campo tipo entero donde lo cree de esta forma int(10) y quiero cambiarlo a esto int(15) pero no me funciona, intento insertar un numero de 15 digitos pero me lo inserta mal, a que es debido esto?como puedo solucionarlo?
Saludos.
  #2 (permalink)  
Antiguo 08/07/2013, 12:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: no me funciona al intentar cambiar un campo tipo entero en mysql

Ese numero no representa la cantidad de dígitos de un número. Se usa para otra cosa, y es totalmente irrelevante para lo que necesitas.
Para poner un número de 15 dígitos debes usar un BIGINT, no un INT.
Por favor, lee en el manual de referencia la descripción de los tipos de columna antes de proseguir o intentar este tipo de cosas. Allí esá la explicación.
En esencia la respuesta es simple: Los números en una base de datos no se almacenan como cifras, sino como binarios.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 08/07/2013, 12:31
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: no me funciona al intentar cambiar un campo tipo entero en mysql

Hola gnzsoloyo, gracias por tu colaboracion ya lei sobre los tipos de columnas me quedo bastante claro pero ahi algo que no me quedo muy claro si uso BIGINT el max de entero puedo ser de hasta 20 caracteres pero si por ejemplo necesito guardar un numero mas grande como se hace?
saludos.
  #4 (permalink)  
Antiguo 08/07/2013, 12:43
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: no me funciona al intentar cambiar un campo tipo entero en mysql

Por empezar, te repito que no existen "caracteres", porque no son cifras, sino numeros binarios. Por eso sólo usa 8 bytes para generar un BIGINT.
Por otro lado, ¿me puedes decir en qué contexto necesitarías superar un valor como 18.446.744.073.709.551.615? Finalmente, para representaciones mayores a eso, suelen usarse números por aproximación (punto flotante), y no enteros.
pero para mayor claridad, ¿Puedes decirme qué representaría un número de semejante tamaño para ti?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 08/07/2013, 14:31
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 13 años, 7 meses
Puntos: 10
Respuesta: no me funciona al intentar cambiar un campo tipo entero en mysql

Hola gnzsoloyo perdona por los caracteres me equivoque, bueno lo de el numero en si no lo necesito para nada solo era curiosidad cuando se trabaja con numeros mayores, solo eso, ya me quedo claro gracias.
  #6 (permalink)  
Antiguo 08/07/2013, 14:46
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: no me funciona al intentar cambiar un campo tipo entero en mysql

Bueno, si se trata de valores mayores a tantos trillones, en general se usan en cálculos científicos, y no se usan enteros, sino puntos flotantes. Notación científica, se entiende.
Ahora bien, si la duda es qué pasa cuando se usan como identificadores, es decir como una PK, y se agotan los números... en realidad es una pregunta muy común en los que recién se inician, y lo suelo responder de esta forma:

Supón que tu sistema ingresa en una tabla 1.000.000 (si, un millón) de registros por segundo. Y supón también que ese sistema no se detiene ni para hacer mantenimiento.

En un año, se generarían 31.536.000.000.000 registros... que parecen muchos. Pero en ese contexto, necesitarías 584.942,42 años para agotar la numeración de un BIGINT (18446744073709551615)...

Creo que la capacidad de almacenamiento se agotará antes que puedas terminar (nadie pueda terminar), con la cantidad de registros numerables sólo con ese tipo de columnas, y eso considerando 32 bits (si vamos a 64, bueno, el universo se extinguirá antes).

¿Se entiende la idea?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 08/07/2013 a las 14:57

Etiquetas: campo, entero, insert, tipo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:43.