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

Langage SQL Discussion :

REPLACE crée des doublons ?


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 220
    Points : 100
    Points
    100
    Par défaut REPLACE crée des doublons ?
    bonjour,

    'REPLACE' crée à chaque fois de nouvelles entrées
    et donc à chaque fois des doublons dans le code suivant.

    Comment faire pour ne pas avoir de doublons ?
    Je voudrais que les nouvelles entrées viennent écraser
    les anciennes. notez que je n'ai pas de clé primaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    # REPLACE est un synonyme de INSERT, mais sans doublon. 
    # Pratique pour respecter les contraintes d’unicité (UNIQUE, PRIMARY KEY).
    REPLACE INTO a01(nom,prenom) VALUES
    ('Martin','Jean'),
    ('Durant','Paul'),
    ('Dupleix','Louis')

  2. #2
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Bonjour,

    REPLACE n'est pas un ordre standard SQL.
    Je suppose que vous travaillez sous mySQL. Dans ce cas, REPLACE se base sur la clef primaire ou sur un index, s'il n'y en a pas, il considèrera que ce sont de nouveaux enregistrements d'où les doublons que vous détectez...

    REPLACE works exactly like INSERT, except that if an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted.[...]
    Note that unless the table has a PRIMARY KEY or UNIQUE index, using a REPLACE statement makes no sense. It becomes equivalent to INSERT, because there is no index to be used to determine whether a new row duplicates another.
    Source : http://dev.mysql.com/doc/refman/6.0/en/replace.html

    Cordialement,

    Arkhena
    A bove ante, ab asino retro, a stulto undique caveto

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 220
    Points : 100
    Points
    100
    Par défaut
    C'est vrai. Merci.

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

Discussions similaires

  1. NuméroAuto qui crée des doublons!
    Par Chrysostome dans le forum VBA Access
    Réponses: 21
    Dernier message: 03/05/2016, 16h02
  2. Synchro MS dynamics pour Outlook créée des contacts en doublons
    Par Dlou1986 dans le forum Microsoft Dynamics CRM
    Réponses: 0
    Dernier message: 11/05/2012, 15h24
  3. [AC-2000] Ma requete SELECT crée des doublons
    Par zabisou dans le forum Requêtes et SQL.
    Réponses: 31
    Dernier message: 29/09/2010, 13h37
  4. saveOrUpdate() qui crée des doublons lors de l'update
    Par tamiii dans le forum Hibernate
    Réponses: 1
    Dernier message: 21/04/2009, 15h44
  5. Un EDIT/UPDATE me crée des doublons
    Par apprenti46 dans le forum VBA Access
    Réponses: 2
    Dernier message: 29/09/2008, 13h58

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