Maison >base de données >tutoriel mysql >Comment puis-je résoudre l'erreur MySQL 1093 : impossible de spécifier la table cible pour la mise à jour dans la clause FROM ?
Erreur MySQL 1093 : Comprendre la restriction sur les mises à jour de table dans la clause FROM
L'erreur MySQL "Vous ne pouvez pas spécifier la table cible 'nom_table 'for update in FROM clause' se produit lors de la tentative de modification d'une table à partir de sa propre instruction SELECT. Cette restriction provient de l'incapacité de MySQL à mettre à jour et à référencer simultanément une table dans la même opération.
Résoudre l'erreur
Pour surmonter ce problème, envisagez les approches suivantes :
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';
Remarque : La désactivation de l'optimiseur de requêtes n'est pas une solution recommandée à long terme et ne doit être utilisée que comme solution temporaire. Envisagez les approches alternatives pour une maintenance plus efficace de la base de données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!