Partage
  • Partager sur Facebook
  • Partager sur Twitter

[ERREUR 1093] Error Code: 1093. You can't specify

Sujet résolu
8 février 2022 à 19:06:42

Bonjour,

Je tente de lancer une requête et j’obtiens le code 1093 suivant.

Error Code: 1093. You can't specify target table 'conseiller' for update in FROM clause

Voici mon code :

UPDATE conseiller SET 
                conseiller_token = 458, 
                conseiller_token_dte = now()
WHERE id_conseiller = (SELECT id_conseiller FROM conseiller WHERE conseiller_mail = 'contact@mail.com')

Pouvez vous m'aider à corriger cette erreur ?

D'avance merci.

  • Partager sur Facebook
  • Partager sur Twitter
9 février 2022 à 11:21:14

Bonjour,

L'erreur est claire, tu ne peux pas faire une sous-requête impliquant la table mise à jour.

Pour corriger, il faut faire attention. Commence en regardant le résultat de cette requête :

SELECT *
FROM conseiller
WHERE conseiller_mail = 'contact@mail.com'

Si cette requête retourne bien la ou les lignes que tu veux mettre à jour, alors tu peux faire :

UPDATE conseiller
SET
	conseiller_token = 458,
	conseiller_token_dte = now()
WHERE conseiller_mail = 'contact@mail.com'
  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
10 février 2022 à 17:17:22

Bonjour Benzouye,

J'ai fait en deux requête, la première me donne l'id grasse a l’adresse mail et une deuxième update qui met à jour avec comme where l'id

  • Partager sur Facebook
  • Partager sur Twitter
10 février 2022 à 18:17:17

MiaoLee a écrit:

J'ai fait en deux requête

Inutile ... une seule comme montré ci-dessus suffisait ...

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL