En primer lugar, debe saber que las claves y los índices son sinónimos en MySQL. Si observa la documentación sobre la sintaxis CREATE TABLE , puede leer:
KEY
es normalmente un sinónimo de INDEX
. El atributo de clave PRIMARY KEY
también se puede especificar KEY
cuando se proporciona en una definición de columna. Esto se implementó por compatibilidad con otros sistemas de bases de datos.
Ahora, el tipo de error que está recibiendo puede deberse a dos cosas:
- Problemas de disco en el servidor MySQL
- Teclas / tablas dañadas
En el primer caso, verá que agregar un límite a su consulta podría resolver el problema temporalmente. Si eso es suficiente para usted, probablemente tenga una tmp
carpeta que sea demasiado pequeña para el tamaño de las consultas que está tratando de hacer. A continuación, puede decidir hacer tmp
más grande o hacer sus consultas más pequeñas. ;)
A veces, tmp
es lo suficientemente grande pero aún se llena, necesitará hacer una limpieza manual en estas situaciones.
En el segundo caso, existen problemas reales con los datos de MySQL. Si puede volver a insertar los datos fácilmente, le aconsejo que simplemente suelte / vuelva a crear la tabla y vuelva a insertar los datos. Si no puede, intente reparar la mesa en su lugar con la mesa REPAIR . Es un proceso generalmente largo que bien podría fallar.
Mire el mensaje de error completo que recibe:
Archivo de clave incorrecto para la tabla 'FILEPATH.MYI'; intenta repararlo
Menciona en el mensaje que puede intentar repararlo. Además, si observa el FILEPATH real que obtiene, puede encontrar más:
si es algo así /tmp/#sql_ab34_23f
, significa que MySQL necesita crear una tabla temporal debido al tamaño de la consulta. Lo almacena en / tmp, y no hay suficiente espacio en su / tmp para esa tabla temporal.
si contiene el nombre de una tabla real en su lugar, significa que es muy probable que esta tabla esté dañada y que debería repararla.
Si identifica que su problema es con el tamaño de / tmp, simplemente lea esta respuesta a una pregunta similar para la solución: MySQL, Error 126: Archivo de clave incorrecto para la tabla .