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 :

Problème sur ON DUPLICATE KEY UPDATE


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut Problème sur ON DUPLICATE KEY UPDATE
    Bonjour,

    J'ai un problème avec ON DUPLICATE KEY UPDATE.
    Ça ne va pas être facile à expliquer, mais j’espère réussir à éclaircir le problème.

    J'ai deux tables identiques dans deux bases différentes.
    Je souhaite mettre à jour la table de la base Y à partir de la table de la base X.

    Donc ma requête pour son début se construit de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Y.ma_table (col1, col2, col3)
    SELECT col1, col2, col3 FROM X.ma_table
    Cette requête là fonctionne très bien sous réserve que la table Y soit vide.

    En revanche si un doublon de clé primaire est trouvé, j'aimerais que la ligne concernée dans la table Y prenne les valeurs de la ligne de la table X et c'est là que je bloque.
    Je ne sais pas comment lui dire de prendre les valeurs retournées par la requête SELECT.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO Y.ma_table (col1, col2, col3)
    SELECT col1, col2, col3 FROM X.ma_table
    ON DUPLICATE KEY UPDATE col1 = ???, col2 = ???, col3 = ???
    J'espère que vous allez pouvoir m'éclairer.
    Merci d'avance !!!

  2. #2
    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 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 040
    Points : 23 795
    Points
    23 795
    Par défaut
    D'après la documentation de MySQL, INSERT... SELECT... et ON DUPLICATE KEY UPDATE... ne sont pas compatibles dans la même syntaxe.

    Essaie éventuellement de passer par REPLACE... SELECT... : http://dev.mysql.com/doc/refman/5.0/fr/replace.html

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 35
    Points : 25
    Points
    25
    Par défaut
    Au top !!!
    Merci pour cette réponse Je ne connaissais pas cette syntaxe

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

Discussions similaires

  1. Problème Procédure avec On Key Update
    Par smiley95 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 24/04/2008, 01h52
  2. Syntaxe ON DUPLICATE KEY UPDATE
    Par JoN28fr dans le forum Requêtes
    Réponses: 7
    Dernier message: 27/02/2008, 09h32
  3. ON DUPLICATE KEY UPDATE et unicité sur 2 colonnes
    Par dja07 dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 07/06/2007, 16h54
  4. Problème sur les virtual Key
    Par Moustico dans le forum Windows
    Réponses: 7
    Dernier message: 05/06/2007, 18h09
  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