SQL - Erreur #1093
Dimistik
Messages postés
58
Statut
Membre
-
Dimistik Messages postés 58 Statut Membre -
Dimistik Messages postés 58 Statut Membre -
Bonjour,
Via une requête SQL, Je tente de supprimer ma dernière commande. Donc pour réaliser cela, je fais la requête suivante :
Le problème, c'est que je tombe sur l'erreur 1093 :
Et bon, je comprend pas trop pourquoi là... Quelqu'un aurait une solution? Merci d'avance.
Via une requête SQL, Je tente de supprimer ma dernière commande. Donc pour réaliser cela, je fais la requête suivante :
DELETE FROM commande WHERE commande.numcommande = (SELECT MAX( com.numcommande ) FROM commande AS com) LIMIT 1
Le problème, c'est que je tombe sur l'erreur 1093 :
#1093 - You can't specify target table 'commande' for update in FROM clause
Et bon, je comprend pas trop pourquoi là... Quelqu'un aurait une solution? Merci d'avance.
A voir également:
- SQL - Erreur #1093
- Erreur t32 ✓ - Forum Livebox
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Une erreur s'est produite instagram ✓ - Forum Instagram
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
1 réponse
Bonjour,
A vue d'oeil, je dirais que le AS est mal utilisé.
D'ailleurs, j'ai testé cette requête sur Oracle10g, et il n'accepte même pas la syntaxe.
Pour spécifier un 'alias' pour une table dans le FROM, tu n'a pas besoin d'utiliser AS.
Par ex: SELECT P1.NOM FROM PERSONNE P1;
Je pense que tu pourrais tester comme ça :
DELETE FROM commande C1 WHERE C1.numcommande = (SELECT MAX(C2.numcommande)
FROM commande C2)
Le "LIMIT 1" ne fonctionnera pas sous ORACLE, où il faudra utiliser "AND ROWNUM=1"
Quel est ton SGBD ?
Bonne journée!
A vue d'oeil, je dirais que le AS est mal utilisé.
D'ailleurs, j'ai testé cette requête sur Oracle10g, et il n'accepte même pas la syntaxe.
Pour spécifier un 'alias' pour une table dans le FROM, tu n'a pas besoin d'utiliser AS.
Par ex: SELECT P1.NOM FROM PERSONNE P1;
Je pense que tu pourrais tester comme ça :
DELETE FROM commande C1 WHERE C1.numcommande = (SELECT MAX(C2.numcommande)
FROM commande C2)
Le "LIMIT 1" ne fonctionnera pas sous ORACLE, où il faudra utiliser "AND ROWNUM=1"
Quel est ton SGBD ?
Bonne journée!
J'ai tenté ta requête, en vain...
Il me dit :