IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

Enregistrements en double


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Enregistrements en double
    Bonjour

    Suite à une cause indeterminée (je ferai ça dans une autre discussion), mon programme a doublé des enregistrements.

    Comment pourrais par sql supprimer les doubles parfaits d'une table?

    Merci pour votre aide

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    la table sans les doublons (je suppose que si tu as des doublons que tu n as pas de clé primaire ou de contrainite UNIQUE)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    create table sans_doublons as
    select max(champ1),max(champ2),...,max(champN)
    from table_avec_doublons
    group by champ1,champ2,...champN

  3. #3
    Membre régulier
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 77
    Points : 89
    Points
    89
    Par défaut
    salut,

    J'utiliserais plutôt le mot clé DISTINCT qui est justement la pour éviter les doublons dans le résultat de la requète.

    et pour eviter de supprimer ta table et de la recréer je dirais :

    1. création d'une table temporaire à partir des enregistrements de ta table (avec requete distinct)

    2. tu vides la table qui contient les doublons

    3. tu repeuples ta table à partir de la table temporaire

    4. tu supprimes la table temporaire

  4. #4
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Suffit de lire la FAQ sur ce site (http://oracle.developpez.com/faq/?page=3-1#doublons) ou de faire une recherche, ce problème a déjà été posé de nombreuses fois
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Merci: les deux solutions marchent

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 37
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par robri Voir le message
    salut,

    J'utiliserais plutôt le mot clé DISTINCT qui est justement la pour éviter les doublons dans le résultat de la requète.

    et pour eviter de supprimer ta table et de la recréer je dirais :

    1. création d'une table temporaire à partir des enregistrements de ta table (avec requete distinct)

    2. tu vides la table qui contient les doublons

    3. tu repeuples ta table à partir de la table temporaire

    4. tu supprimes la table temporaire
    Effectivement DISTINCT est bien mieux.
    Je fais tellement de GROUP BY en ce moment que je n'ai pas pensé à un simple DISTINCT. désolé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. requette pour les enregistrements en double
    Par colombe dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/07/2006, 12h28
  2. détecter les enregistrements en double (sur un champ)
    Par Phiss dans le forum Langage SQL
    Réponses: 6
    Dernier message: 06/07/2006, 16h59
  3. Réponses: 8
    Dernier message: 13/04/2006, 15h22
  4. formulaire: enregistrement en double/date now pb
    Par debdev dans le forum Access
    Réponses: 18
    Dernier message: 02/01/2006, 12h54
  5. [Forms] : enregistrement en double
    Par Aminos dans le forum Forms
    Réponses: 5
    Dernier message: 27/01/2005, 17h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo