Heim >Datenbank >MySQL-Tutorial >Wie kann der Fehler „Tabelle kann nicht erneut geöffnet werden' in temporären MySQL-Tabellen umgangen werden?
Bei der Datenverarbeitung ist die Fähigkeit, eine Tabelle mehrmals in einer komplexen Abfrage zu verwenden, oft von entscheidender Bedeutung. Bei der Arbeit mit temporären Tabellen in MySQL tritt bei diesem scheinbar einfachen Vorgang jedoch der frustrierende Fehler „Tabelle kann nicht erneut geöffnet werden“ auf.
Hintergrund
Wie von Kris beschrieben, Eine komplexe Abfrage mit mehreren INNER JOINS für eine temporäre Tabelle führt zu dem Fehler. Dies liegt daran, dass MySQL nicht zulässt, dass temporäre Tabellen mehrmals innerhalb derselben Abfrage geöffnet werden.
Problemumgehung
Um diese Einschränkung zu umgehen, besteht eine einfache, aber effektive Lösung darin: Duplizieren Sie die temporäre Tabelle und erstellen Sie im Wesentlichen zwei identische Versionen. Dies funktioniert besonders gut, wenn die temporäre Tabelle relativ klein ist, was häufig der Fall ist.
Implementierung
Die folgenden Schritte beschreiben die Implementierung dieser Problemumgehung:
CREATE TEMPORARY TABLE search (baseID INT, condition TEXT);
INSERT INTO search (baseID, condition) VALUES (1, 'condition1'), (1, 'condition2'), ...;
CREATE TEMPORARY TABLE search_copy AS SELECT * FROM search;
SELECT * FROM search INNER JOIN search_copy f1 ON f1.baseID = search.baseID AND f1.condition = condition1 INNER JOIN search_copy f2 ON f2.baseID = search.baseID AND f2.condition = condition2 ... INNER JOIN search_copy fN ON fN.baseID = search.baseID AND fN.condition = conditionN;
Vorteile
Diese Problemumgehung bietet mehrere Vorteile:
Das obige ist der detaillierte Inhalt vonWie kann der Fehler „Tabelle kann nicht erneut geöffnet werden' in temporären MySQL-Tabellen umgangen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!