Delete en sql

Résolu
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
Configuration: Windows XP
Firefox 2.0.0.7

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. 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. Je vous remercie pour votre réponse, connaissez vous une solution oracle?
    2. 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
  2. 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 !