Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nieprawidłowy plik klucza dla tabeli '/tmp/#sql_18b4_0.MYI' spróbuj go naprawić

O cholera, to był głupi błąd ze strony mojego programisty. Po 30 minutach burzy mózgów, aby zaprojektować to zapytanie w inny sposób, pojawił się problem, że programista używał join w zły sposób, z tego powodu mysql nie był w stanie poprawnie połączyć danych tabel i zużywając całe miejsce w katalogu /tmp i zgłaszając ten błąd. Prawidłowe zapytanie jest tutaj-

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;

Teraz pytanie brzmi, czy jest to błąd mysql, ponieważ mysql powinien zgłosić błąd składni, ale tutaj mysql próbuje utworzyć tymczasową tabelę dla danych tymczasowych.

Będę bardzo wdzięczny, jeśli ktoś może mi to wyjaśnić.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wypisz za pomocą PHP wartość zmiennej lub predefiniowaną STAŁY z ciągu wynikowego MySQL

  2. Jak używać GROUP BY do łączenia ciągów w mysql

  3. Ostrzeżenie, że katalog user/local/mysql/data nie jest własnością użytkownika mysql

  4. Jak zmiana typu pola mysql z INT na VARCHAR wpłynie na dane zapisane wcześniej jako INT?

  5. Najlepszy sposób na tworzenie/zarządzanie/projektowanie powtarzających się zadań/kalendarza