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

Requêtes MySQL Discussion :

INSERT .. ON DUPLICATE KEY UPDATE fait que des INSERT !


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 178
    Par défaut INSERT .. ON DUPLICATE KEY UPDATE fait que des INSERT !
    Bonjour à tous,

    J'ai un problème pour mettre à jour des données dans une table, j'utilise la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO maTable
    VALUES '','valeur1','valeur2'
    ON DUPLICATE KEY
    UPDATE champ2='text1',champ3='valeur2'
    Avec cette commande j'arrive bien à INSERT mais lorsque je relance mon script il créé des doublons ( en fait il fait des INSERT ) et ne met pas du tout à jour les données.
    Pourtant j'ai bien un champ1 définit en clé primaire, cela viendrait-il du fait qu'il soit en auto_increment ?

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    178
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 178
    Par défaut
    Bon, finalement j'ai trouvé
    J'ai du créé un index :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE UNIQUE INDEX index_unique
    ON maTable(champ2,champ3)
    Je comprends toujours pas pourquoi ça ne fonctionne pas avec ma clé primaire cependant...

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 059
    Par défaut
    Bonjour,

    Si ce que tu souhaites, c'est que la combinaison de champ2 et champ3 soit unique, il faut effectivement ajouter une contrainte UNIQUE sur cette combinaison.
    Comme ton champ1 est en auto-incrément, à chaque insertion il aura une valeur différente. Et comme c'est lui la clef primaire, il n'y aura jamais de clef dupliquée (c'est d'ailleurs bien là le principe de l'auto-incrément : éviter automatiquement les clefs dupliquées...). La clef, dans ton cas, ne porte que sur champ1, pas sur les autres champs.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

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

Discussions similaires

  1. [MySQL-5.1] duplicate key on update ne fait que des insert
    Par ifsera dans le forum Requêtes
    Réponses: 2
    Dernier message: 08/04/2013, 12h05
  2. Requête insert + duplicate key update
    Par sfpx dans le forum Requêtes
    Réponses: 5
    Dernier message: 01/05/2012, 07h16
  3. INSERT ON DUPLICATE KEY UPDATE
    Par karl2mil1 dans le forum Requêtes
    Réponses: 1
    Dernier message: 21/01/2011, 15h47
  4. Insert, on duplicate key update
    Par knolz dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 30/06/2010, 08h33
  5. INSERT ... ON DUPLICATE KEY UPDATE
    Par luffy san dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 17/10/2005, 17h29

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