Code d'erreur : 1093 | ER_UPDATE_TABLE_USED |
---|---|
MySQL |
Formulation
MySQL Error 1093 - Can't specify target table for update in FROM clause |
Description
Cette valeur indique qu'une erreur d'impossibilité d'effectuer une mise-à-jour dans la table spécifié est survenue.
Remarque
- Contrairement à ce que l'on pourrait croire, cette erreur peut se déclencher aussi bien avec une instruction «UPDATE» que «DELETE».
Cause
Cette situation est provoqué à cause que vous tentez de modifier la même table que vous utilisez dans la partie SELECT.
Solution
Vous aurez besoin de cesser d'utiliser une sous-requête SQL imbriqué et exécuter l'opération en deux parties ou encore utiliser une simple clause. A partir de la version 5.7.6 de MySQL vous pouvez également indiquer «SET optimizer_switch = 'derived_merge=off';» mais cela à un impact très sérieux sur la performance. Si vous recevez l'erreur suivante en tentant d'effectuer une suppression d'enregistrement :
MySQL Error 1093 - Can't specify target table for update in FROM clause |
Et que vous avez une formulation comme ceci :
Vous devriez ajouter un SELECT entre votre DELETE IN :
Dernière mise à jour : Jeudi, le 11 août 2016