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...