Delete en sql

Résolu/Fermé
sorbidot Messages postés 31 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 11 août 2008 - 5 oct. 2007 à 11:57
 hotmazil - 18 juin 2009 à 14:25
Bonjour,

j'ai une table qui ne contient pas de clés primaire, et elle contient des doublons, je veux faire un DELETE mais pour supprimer une seule ligne.

Je vous remercie d'avance pour vos réponses
A voir également:

3 réponses

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
5 oct. 2007 à 12:44
Bonjour,

Très fastidieux... Déjà, cela dépend de ton SGBD.
Sous mysql, il faut utiliser limit 0,1 en fin de requête : DELETE FROM [...] WHERE [...] LIMIT 0,1
Sous SQL Server, il faut utiliser TOP 1 en début de requête : DELETE TOP 1 FROM [...] WHERE [...]

Sous d'autres SGBD, il faut se renseigner sur la syntaxe exacte.

En tous cas, à ta place, je commencerais par engueuler le mec qui a eu l'idée d'une table sans clé primaire...

Xavier
1
sorbidot Messages postés 31 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 11 août 2008 3
5 oct. 2007 à 13:12
Je vous remercie pour votre réponse, connaissez vous une solution oracle?
0
Petite précision sur le LIMIT de Delete sous MySQL :

La syntaxe exacte pour delete une ligne serait DELETE FROM [...] WHERE [...] LIMIT 1

et non : DELETE FROM [...] WHERE [...] LIMIT 0,1

LIMIT 0,1 s'applique pour les SELECT et non les DELETE
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
5 oct. 2007 à 13:47
Je ne savais pas il y a 5 minutes... Le temps de chercher sur Google...
WHERE ROWNUM = 1

Faudrait pas non plus se priver de recherche personnelle, hein !
1
sorbidot Messages postés 31 Date d'inscription mardi 6 février 2007 Statut Membre Dernière intervention 11 août 2008 3
8 oct. 2007 à 23:30
Je vous remercie beaucoup c'est le bon paramètre!
-1