sql >> Database >  >> RDS >> Mysql

Onjuist sleutelbestand voor tabel '/tmp/#sql_18b4_0.MYI' probeer het te repareren

Oh shit, dit was een domme fout van mijn ontwikkelaar. Na 30 minuten hersenstormen om deze query op een andere manier te ontwerpen, kreeg ik dit probleem dat de ontwikkelaar join op de verkeerde manier gebruikte, hierdoor was mysql niet in staat om tabelgegevens correct samen te voegen en verbruikt alle ruimte in de /tmp-map en geeft deze fout. De juiste vraag is hier-

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;

Nu is hier de vraag of dit een mysql-bug is, aangezien mysql een verkeerde syntaxisfout zou moeten veroorzaken, maar hier probeert mysql een tijdelijke tabel te maken voor tijdelijke gegevens.

Ik zal erg dankbaar zijn als iemand me dit kan ophelderen.




  1. TIME_TO_SEC() Voorbeelden – MySQL

  2. Back-up en herstel MySQL-database in PHP

  3. Kies uit de tabel door alleen de datum zonder tijd te kennen (ORACLE)

  4. Tekstbestand Structuur (tabellen)