MySQL-Fehler 1093: Verständnis der Einschränkung bei Tabellenaktualisierungen in der FROM-Klausel
Der MySQL-Fehler „Sie können die Zieltabelle 'table_name' nicht angeben „for update in FROM-Klausel“ tritt auf, wenn versucht wird, eine Tabelle innerhalb ihrer eigenen SELECT-Anweisung zu ändern. Diese Einschränkung ergibt sich aus der Unfähigkeit von MySQL, gleichzeitig eine Tabelle im selben Vorgang zu aktualisieren und darauf zu verweisen.
Behebung des Fehlers
Um dieses Problem zu lösen, ziehen Sie die folgenden Ansätze in Betracht:
UPDATE story_category a INNER JOIN story_category b ON a.category_id = b.category_id SET a.category_id = ...
UPDATE story_category SET category_id = ( SELECT id FROM ( SELECT id FROM category EXCEPT SELECT DISTINCT category_id FROM story_category ) AS x )
SET optimizer_switch = 'derived_merge=off';
Hinweis: Das Deaktivieren des Abfrageoptimierers ist keine empfohlene langfristige Lösung und sollte nur als vorübergehende Lösung verwendet werden. Erwägen Sie alternative Ansätze für eine effizientere Datenbankwartung.
Das obige ist der detaillierte Inhalt vonWie kann ich den MySQL-Fehler 1093 beheben: Die Zieltabelle für die Aktualisierung kann in der FROM-Klausel nicht angegeben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!