Mysql
 sql >> Base de données >  >> RDS >> Mysql

Fichier de clé incorrect pour la table '/tmp/#sql_18b4_0.MYI' essayez de le réparer

Oh merde, c'était une erreur stupide de la part de mon développeur, après 30 minutes de remue-méninges pour concevoir cette requête de manière différente, j'ai eu ce problème que le développeur utilisait la jointure de manière incorrecte, à cause de cela, mysql n'était pas en mesure de joindre correctement les données des tables et consomme tout l'espace dans le répertoire /tmp et génère cette erreur. La requête correcte est ici-

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;

Maintenant, la question est ici qu'il s'agit d'un bogue mysql car mysql devrait générer une mauvaise erreur de syntaxe, mais ici mysql essaie de créer une table temporaire pour les données temporaires.

Je serai très reconnaissant si quelqu'un peut me clarifier cela.