Überwindung des MySQL-Fehlers 1093: Aktualisieren der in der FROM-Klausel angegebenen Tabellen
MySQL-Fehler 1093 tritt auf, wenn versucht wird, eine Tabelle zu aktualisieren, die auch in verwendet wird die FROM-Klausel derselben Abfrage. Um diesen Fehler zu beheben, ziehen Sie die folgenden Ansätze in Betracht:
Verknüpfen der Tabelle mit sich selbst
Wenn möglich, verbinden Sie die Tabelle mithilfe geeigneter Auswahlkriterien mit sich selbst. Dadurch kann MySQL die Tabelle als separate Einheiten anzeigen und destruktive Änderungen vornehmen:
UPDATE tbl AS a INNER JOIN tbl AS b ON .... SET a.col = b.col
Verschachtelung der Unterabfrage tiefer in der FROM-Klausel
Alternativ verschachteln die Unterabfrage tiefer in die FROM-Klausel ein, um eine implizite temporäre Tabelle zu erstellen:
UPDATE tbl SET col = ( SELECT ... FROM (SELECT.... FROM) AS x);
Allerdings Die Methode ist weniger effizient und wird in bestimmten Versionen vom MySQL-Abfrageoptimierer möglicherweise nicht richtig optimiert.
Abfrageoptimierer deaktivieren
In MySQL-Versionen 5.7.6 und höher der Optimierer kann die Unterabfragestrategie verhindern. Um die Optimierung vorübergehend zu deaktivieren, legen Sie die Variable „optimierer_schalter“ fest:
SET optimizer_switch = 'derived_merge=off';
Beispiel-Löschabfrage
Um die spezifische Abfrage in der Frage zu beantworten, verknüpfen Sie die Tabelle „story_category“ mit der Kategorietabelle, um die beschädigten Einträge zu identifizieren und zu löschen:
DELETE t1 FROM story_category AS t1 INNER JOIN category AS t2 ON t1.category_id = t2.id WHERE t2.id IS NULL;
Zusammenfassend lässt sich sagen, dass Sie durch den Einsatz dieser Techniken das Problem beheben können Fehler „Die Zieltabelle für die Aktualisierung kann in der FROM-Klausel nicht angegeben werden“ und die erforderlichen Änderungen an Ihren Datenbanktabellen durchführen.
Das obige ist der detaillierte Inhalt vonWie kann ich den MySQL-Fehler 1093 beheben: „In der FROM-Klausel kann keine Zieltabelle für die Aktualisierung angegeben werden'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!