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

Incorrect key file for table '/tmp/#sql_7200_0.MYI'; try to repair it

Estas en el tema de Incorrect key file for table '/tmp/#sql_7200_0.MYI'; try to repair it en el foro de Mysql en Foros del Web. En el buscador de una web que estoy modificando, tengo este error: Incorrect key file for table '/tmp/#sql_7200_0.MYI'; try to repair it que solo ocurre ...
  #1 (permalink)  
Antiguo 25/07/2010, 12:27
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 15 años, 1 mes
Puntos: 10
Incorrect key file for table '/tmp/#sql_7200_0.MYI'; try to repair it

En el buscador de una web que estoy modificando, tengo este error:

Incorrect key file for table '/tmp/#sql_7200_0.MYI'; try to repair it

que solo ocurre cuando se le dan una serie de opciones y hacen el query muy largo.

Esta web, es un sistema de anunciados de coches, y cuando se hizo, los kms, al introducirlos en la bd se introducian como cadena "de 0 a 5000"

Entonces a la hora de buscar, es "Menos de 40000" y tiene que buscar pues todos los valores posibles ("de 0 a 5000","de 5000 a 10000", "de 10000 a 15000", etc)

y eso crea un query enorme, y no quiero tener que modificar todos los coches ya introducidos.

Sabeis como se puede solucionar?
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #2 (permalink)  
Antiguo 26/07/2010, 00:44
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Incorrect key file for table '/tmp/#sql_7200_0.MYI'; try to repair it

imagino que tienes una tabla con los kms, esa tabla con
"de 0 a 5000"
"de 5001 a 10000"
"de 10001 a 15000"
etc.
Pues bien, en esa tabla añades dos campos, uno llamado kmsini y otro kmsfin, ambos INT
en el primero escribes el primer número y en el segundo el último, es decir,
"de 0 a 5000"|0|5000
"de 5001 a 10000|5001|10000
y así.
Eso te permitirá hacer las búsquedas. Por ej.
Código MySQL:
Ver original
  1. SELECT * FROM tutabla WHERE kmsfin > 40000
Eso te encontraría todos los coches que están en ese rango de menos de 40000.
  #3 (permalink)  
Antiguo 26/07/2010, 01:43
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 15 años, 1 mes
Puntos: 10
Respuesta: Incorrect key file for table '/tmp/#sql_7200_0.MYI'; try to repair it

ya me lo imaginaba, pero es que ya hay 400 registros introducidos. Si no hay más remedio, tendré que coger y dedicarme a ir cambiando, pero buscaba otra solución
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #4 (permalink)  
Antiguo 26/07/2010, 04:55
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Incorrect key file for table '/tmp/#sql_7200_0.MYI'; try to repair it

No te confundas, markmb. ¿Tú, imagino, tendrás una tabla con esas posibilidades cada 5000 kms o es que simplemente escribes en un campo del registro de cada vehículo ese valor en forma de texto? ¿En qué tabla tienes esos grupos, ese campo de texto?, porque imagino que lo tendrás en una tabla,¿ o no? Es en esa tabla donde debes ponerlo, no en la tabla de cada vehículo concreto. Luego, mediante relaciones, es decir, con inner join, te traes el dato. Pero dinos cómo tienes las tablas, cómo introduces ese dato y podremos ayudarte.
  #5 (permalink)  
Antiguo 26/07/2010, 05:14
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: Incorrect key file for table '/tmp/#sql_7200_0.MYI'; try to repair it

Cita:
ya me lo imaginaba, pero es que ya hay 400 registros introducidos. Si no hay más remedio, tendré que coger y dedicarme a ir cambiando, pero buscaba otra solución
Cuando tienes algo mal diseñado desde el inicio, hay un momento en que debes tomar el toro por las astas y resolverlo. Si lo prolongas en el tiempo lo único que obtendrás serán problemas...

Como te dice jurena, la mejor opción es separar esos máximos y mínimos en dos campos independientes, donde los pongas como valores numéricos y no cadenas de texto. El hecho de que tengas 400 registros es casi irrelevante, pero si eso te preocupa lo que puedes hacer es implementar yna rutina (sea en PHP o en otro lenguaje) que te permita separar los valores del texto y recuperar el contenido de la tabla.
Tal vez la idea ´más aplicable, si no quieres hacerlo a mano,sea esa: Hacer un volcado de la tabla en formato CSV, en el cual una función recupere los valores enteros contenidos en la cadena, pero en dos columnas separadas; luego simplemente podrías recargar la tabla con esos valores.
Pro supuesto que estoy hablando hipotéticamente, por cuanto no conozco la estructura y relaciones de la tabla, pero habría que estudiar el caso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 26/07/2010, 05:29
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 15 años, 1 mes
Puntos: 10
Respuesta: Incorrect key file for table '/tmp/#sql_7200_0.MYI'; try to repair it

La web no es mia, es de un cliente, y no se quien la diseñó y programo en el incio, yo solo le estoy ayudando a cambiar unas cosas.

Pues eso haré, una función php que lo separe en 2 campos diferentes y a ver como va... (supuestamente, así debería ir perfectamente, con dos campos separados).
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #7 (permalink)  
Antiguo 26/07/2010, 05:41
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: Incorrect key file for table '/tmp/#sql_7200_0.MYI'; try to repair it

¿No puedes modificar esa tabla?
¿Podrías agregarle una con la que compensases el error de diseño? Es a sería una buena opción, con la que ganarías en optimizacion de consultas...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 26/07/2010, 06:00
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 15 años, 1 mes
Puntos: 10
Respuesta: Incorrect key file for table '/tmp/#sql_7200_0.MYI'; try to repair it

se crean 2 tablas nuevas, minimo y maximo

se hacen un par de consultas con php, con el sitio offline y en lugar de ser una cadena "0 a 5000", se pone 0 en minimo y 5000 en maximo, y ya esta.

Despues se comprueban los datos y se cambia el formulario de anunciarse.

No es tan complicado, pero trabajoso
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....
  #9 (permalink)  
Antiguo 26/07/2010, 06:02
 
Fecha de Ingreso: octubre-2009
Ubicación: En el ordenador
Mensajes: 504
Antigüedad: 15 años, 1 mes
Puntos: 10
Respuesta: Incorrect key file for table '/tmp/#sql_7200_0.MYI'; try to repair it

Ahhh!!! pero si parecia que no habia posteado!!!! (Se puede borrar)
__________________
Buscando ideas para proyectos....

Esperando a tener 18 años....

Etiquetas: file, key, repair, table
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 10:47.