Heim  >  Artikel  >  Datenbank  >  Warum kann ich eine MySQL-Tabelle, die „bereits existiert“, nicht löschen?

Warum kann ich eine MySQL-Tabelle, die „bereits existiert“, nicht löschen?

DDD
DDDOriginal
2024-10-27 03:37:02673Durchsuche

 Why Can't I Drop a MySQL Table That

MySQL Table Enigma: Vorhanden und doch nicht vorhanden

Während der Tabellenerstellung oder -änderung steht man vor dem paradoxen Fehler „Tabelle existiert bereits“ und stößt dennoch auf „ „Unbekannte Tabelle“ während Löschversuchen, Benutzer waren verwirrt und konnten das Problem nicht lösen.

Untersuchung der Anomalie

Eine Untersuchung der Datenbank ergab, dass die Tabelle fehlte in „Tabellen anzeigen“ und „Beschreiben“ meldet, dass die Tabelle nicht existiert. Überraschenderweise kann keine .frm-Datei gefunden werden und Versuche, die Tabelle mit „Tabelle erstellen, falls nicht vorhanden“ zu erstellen, schlagen fehl. Erschwerend kommt hinzu, dass das Löschen der Datenbank zu MySQL-Abstürzen führt.

Mögliche Lösung

Nach der Analyse verschiedener erfolgloser Versuche scheint die zugrunde liegende Ursache in fehlenden Tabellendateien zu liegen. Im Datenverzeichnis kann eine verwaiste .frm-Datei ohne die entsprechende Datendatei oder umgekehrt dieses Problem verursachen. Wenn Sie innodb_file_per_table verwenden, stellen Sie sicher, dass sowohl .frm- als auch .ibd-Dateien für die betroffene Tabelle vorhanden sind. Für MYISAM sind die erwarteten Dateien .frm, .MYI und .MYD.

Das Rätsel lösen

Um das Problem zu beheben, löschen Sie die verwaiste Datei manuell aus dem Datenverzeichnis. Dies sollte eine erfolgreiche Erstellung oder Löschung der betroffenen Tabelle ermöglichen und das Problem des Datenbankabsturzes beheben.

Das obige ist der detaillierte Inhalt vonWarum kann ich eine MySQL-Tabelle, die „bereits existiert“, nicht löschen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn