sql >> Base de Datos >  >> RDS >> Mysql

Archivo de clave incorrecto para la tabla '/tmp/#sql_18b4_0.MYI' intente repararlo

Oh, mierda, esto fue un error tonto por parte de mi desarrollador. Después de 30 minutos de lluvia de ideas para diseñar esta consulta de una manera diferente, obtuve este problema de que el desarrollador estaba usando join de manera incorrecta, debido a que mysql no pudo unir correctamente los datos de las tablas y consumiendo todo el espacio en el directorio /tmp y arrojando este error. La consulta correcta está aquí-

SELECT `PsMasterSubject`.`id`, `PsMasterSubject`.`name`, `PsProgram`.`name`, `PsStreamLevel`.`id` 
FROM `misdb`.`ps_master_subjects` AS `PsMasterSubject` 
LEFT JOIN `misdb`.`ps_programs` AS `PsProgram` ON (`PsMasterSubject`.`ps_program_id` = `PsProgram`.`id`) 
LEFT JOIN `misdb`.`ps_stream_levels` AS `PsStreamLevel` ON (`PsStreamLevel`.`id` = `PsProgram`.`ps_stream_level_id`) 
LEFT JOIN `misdb`.`ps_program_levels` AS `PsProgramLevel` ON (`PsProgramLevel`.`id` = `PsStreamLevel`.`ps_program_level_id`) 
WHERE 1 = 1 
ORDER BY `PsMasterSubject`.`id` DESC LIMIT 10;

Ahora la pregunta es aquí si se trata de un error de mysql, ya que mysql debería arrojar un error de sintaxis incorrecto, pero aquí mysql está tratando de crear una tabla temporal para datos temporales.

Estaré muy agradecido si alguien puede aclararme esto.