Heim > Datenbank > MySQL-Tutorial > So lösen Sie den MySQL-Fehler 1093: „Sie können die Zieltabelle ‚table_name' für die Aktualisierung nicht in der FROM-Klausel angeben'?

So lösen Sie den MySQL-Fehler 1093: „Sie können die Zieltabelle ‚table_name' für die Aktualisierung nicht in der FROM-Klausel angeben'?

Patricia Arquette
Freigeben: 2024-12-24 15:12:15
Original
610 Leute haben es durchsucht

How to Solve MySQL Error 1093:

MySQL-Fehler 1093: Die Einschränkung verstehen und überwinden

In MySQL wird versucht, eine Tabelle zu ändern, auf die auch in der FROM-Klausel von verwiesen wird Dieselbe Abfrage kann zu folgendem Fehler führen: „Sie können die Zieltabelle ‚table_name‘ für die Aktualisierung nicht in der FROM-Klausel angeben.“ Diese Einschränkung ergibt sich aus der Unfähigkeit von MySQL, solche Vorgänge direkt auszuführen.

Um dieses Problem zu lösen, können mehrere Ansätze in Betracht gezogen werden:

Die Tabelle mit sich selbst verbinden

Eine Möglichkeit besteht darin, die Tabelle mit geeigneten Auswahlkriterien mit sich selbst zu verbinden und so aus MySQL-Sicht zwei unterschiedliche Instanzen der Tabelle zu erstellen. Dadurch können destruktive Vorgänge auf einer Instanz ausgeführt werden, während die andere unberührt bleibt.

Unterabfragen in der FROM-Klausel verschachteln

Eine alternative Problemumgehung besteht darin, die Unterabfrage zu verschachteln, die das Ziel generiert Zeilen zum Löschen innerhalb einer tieferen FROM-Klausel. Dadurch wird aus der Unterabfrage eine implizite temporäre Tabelle erstellt, die MySQL als von der Zieltabelle getrennte Entität erkennt. Dieser Ansatz kann sich jedoch auf die Leistung auswirken.

Deaktivieren der Optimiereroptimierung (MySQL 5.7.6 und höher)

Ab MySQL 5.7.6 optimiert der Optimierer möglicherweise die Unterabfrage in der FROM-Klausel, wodurch der Fehler weiterhin besteht. Um dies zu umgehen, deaktivieren Sie die Optimierung mithilfe der Variable „optimierer_switch“:

SET optimizer_switch = 'derived_merge=off';
Nach dem Login kopieren

Beachten Sie, dass dies als kurzfristige Lösung oder für kleine einmalige Aufgaben empfohlen wird, da es sich negativ auf die Gesamtabfrageleistung auswirken kann.

Fazit

Der Fehler „Sie können die Zieltabelle ‚table_name‘ für die Aktualisierung nicht in der FROM-Klausel angeben“ ergibt sich aus der Einschränkung von MySQL beim Ändern einer Tabelle, die auch in der FROM-Klausel verwendet wird. Durch den Einsatz der oben beschriebenen Methoden können Entwickler diese Einschränkung überwinden und die gewünschten Vorgänge an ihren Daten durchführen.

Das obige ist der detaillierte Inhalt vonSo lösen Sie den MySQL-Fehler 1093: „Sie können die Zieltabelle ‚table_name' für die Aktualisierung nicht in der FROM-Klausel angeben'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage