Mysql
 sql >> Database >  >> RDS >> Mysql

File chiave errato per la tabella '/tmp/#sql_18b4_0.MYI' prova a ripararlo

Oh merda, questo è stato un errore sciocco da parte del mio sviluppatore, dopo 30 minuti di brainstorming per progettare questa query in un modo diverso, ho riscontrato questo problema che lo sviluppatore stava usando join in modo errato, a causa di questo mysql non è stato in grado di unire correttamente i dati delle tabelle e consumando tutto lo spazio nella directory /tmp e generando questo errore. La query corretta è qui-

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;

Ora la domanda è qui che si tratta di un bug di mysql poiché mysql dovrebbe generare un errore di sintassi errato ma qui mysql sta cercando di creare una tabella temporanea per i dati temporanei.

Sarò molto grato se qualcuno può chiarirmelo.