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 :

ON DUPLICATE KEY UPDATE pour plusieurs lignes


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2005
    Messages : 41
    Points : 28
    Points
    28
    Par défaut ON DUPLICATE KEY UPDATE pour plusieurs lignes
    bonjour à tous,

    J'aimerais savoir s'il était possible d'effectuer un ON DUPLICATE KEY UPDATE sur plusieurs lignes d'une table en une seule fois.

    Je m'explique. Voici la table en question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE test (
        id                SMALLINT UNSIGNED NOT NULL,
        cumul_max    REAL UNSIGNED NOT NULL DEFAULT 0,
        cumul_point  REAL UNSIGNED NOT NULL DEFAULT 0,
        average       REAL UNSIGNED DEFAULT NULL,
        PRIMARY KEY (id)
    ) TYPE=INNODB;
    Ceci marche très bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO test(id, cumul_max, cumul_point, average) VALUES
                    ( 0,        10,            8,     0.8),
      ON DUPLICATE KEY UPDATE
          (cumul_max=cumul_max+10, cumul_point=cumul_point+8, average=cumul_point/cumul_max);
    Par contre, ceci ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INSERT INTO test(id, cumul_max, cumul_point, average) VALUES
                    ( 0,        10,            8,     0.8),
                    ( 1,        10,            6,     0.6)
      ON DUPLICATE KEY UPDATE
          (cumul_max=cumul_max+10, cumul_point=cumul_point+8, average=cumul_point/cumul_max),
          (cumul_max=cumul_max+10, cumul_point=cumul_point+6, average=cumul_point/cumul_max);
    Si quelqu'un a une solution au problème ou une solution équivalente je l'en remercie gracieusement .

    Merci encore...

  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 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    On ne peut préciser qu'une seule ligne d'UPDATE dans la syntaxe ON DUPLICATE KEY...
    Il nous faudrait plus d'infos pour connaître les règles qui font que le cumul de points n'est pas le même...
    Ou alors, il faut 2 INSERT différents...

    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

Discussions similaires

  1. [MySQL V5.0] Update d'une colonne pour plusieurs lignes
    Par ogrius dans le forum Requêtes
    Réponses: 2
    Dernier message: 02/06/2014, 17h15
  2. trigger delete pour plusieurs lignes
    Par Shabata dans le forum Langage SQL
    Réponses: 6
    Dernier message: 30/09/2009, 01h00
  3. [VBA-E] répéter un tri décroissant pour plusieurs lignes
    Par rajmoule dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 30/03/2006, 17h12
  4. INSERT ... ON DUPLICATE KEY UPDATE
    Par luffy san dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 17/10/2005, 17h29
  5. [excel vba]case à cocher dans excel pour plusieurs lignes
    Par fcoisb dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/03/2005, 11h23

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