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

algo extraño está pasando con una tabla mysql

Estas en el tema de algo extraño está pasando con una tabla mysql en el foro de Mysql en Foros del Web. Hola amig@s. Tengo un problemazo porque, la verdad, no sé por dónde cogerlo. Parece cosa de brujas y ya vereis por qué. En mi aplicación ...
  #1 (permalink)  
Antiguo 13/04/2011, 05:37
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
algo extraño está pasando con una tabla mysql

Hola amig@s.
Tengo un problemazo porque, la verdad, no sé por dónde cogerlo. Parece cosa de brujas y ya vereis por qué.
En mi aplicación necesito crear una tabla dinámicamente, osea crearla y borrarla cuando no la necesite.
Para crearla uso la siguiente sentencia
Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS vd$usuario(id_duplica INT auto_increment PRIMARY KEY, id_primero INT, fecha CHAR( 10 ), hiniv CHAR( 5 ), hfinv CHAR( 5 ), id_segundo INT, hinivd CHAR( 5 ), hfinvd CHAR( 5 ))

Ésto hace que inserte los registros que previamente ha comprado de otra tabla y han coincidido.
Pero eso no es lo importante. La consulta de inserción me la haría bien, la he mostado y salen los datos correctamente

Código MySQL:
Ver original
  1. insert into vd$usuario(id_primero, fecha, hiniv, hfinv, id_segundo, hinivd, hfinvd) values(55555111111, '25/03/2011', '08:55', '09:10', 74522201111, '08:00', '09:00')

Puedo hacerlo desde la aplicación o desde el mismo phpmyadmin que siempre me inserta el siguiente registro

Código MySQL:
Ver original
  1. 1(esta es la pk autoincrement)  2147483647  25/03/2011  08:55   09:10   2147483647  08:00   09:00

La fecha y horas lo hace bien, pero qué pasa con el id_primero y el id_segundo???

Ésto es increible, alguien sabe la respuesta??
Gracias!!
  #2 (permalink)  
Antiguo 13/04/2011, 05:47
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: algo extraño está pasando con una tabla mysql

Estás desbordando el rango del INT. Un INT tiene como rango de representación del -2147483648 al 2147483647, y tu estás metiendo manualmente (no se entiende para qué, si es un auto_increment) el 55555111111, que está excediendo el límite del rango en 53407627464.

Observaciones:
- Si usas un autoincrement, no pones los valores a mano, dejas que MySQL los genere.
- Si vas a definir un ID numérico, tienes que usar un tipo de columna adecuado al dato que va a ingresar. Para ingresar numeros tan altos deberías haber usado BIGINT UNSIGNED.
- Los ID numéricos no necesitan de campos con signo, primero porque eso reduce la representación posible, y segundo, porque no existen en el mundo real los ID negativos en las documentaciones. ¿No te parece?
- Si estás haciendo pruebas con una columna AUTO_INCREMENT, vas a afectar la numeración que MySQL genere. Luego tendrás que vacía la tabla con TRUNCATE o usar ALTER TABLE para resetear la numeración. ten cuidado.
__________________
¿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 13/04/2011, 06:11
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: algo extraño está pasando con una tabla mysql

Gracias gnzsoloyo por tu respuesta.
No se si te has dado cuenta pero el auto_increment se genera solo. Ese dato no lo estoy metiendo en el insert.
Luego, los 2 ids restante, los que me mete mal, son números introducidos manualmente por el usuario final de la aplicación.
La tabla orígen, de la que extraigo los datos, me deja introducirlos tal que así. Pero esta nueva que he creado no, esa es la cuestión.
Voy a probar con el tipo de dato que me has dicho(BIGINT UNSIGNED), porque yo no sé hasta dónde van a llegar esos números(los que he puesto son sólo de pruebas).
Ahora os cuento.
Saludos!!
  #4 (permalink)  
Antiguo 13/04/2011, 06:29
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: algo extraño está pasando con una tabla mysql

Lo dicho, muchas gracias, me lo inserta correctamente con ese tipo de dato.

Etiquetas: extraño, pasando, tablas
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 15:20.