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
Ceci marche très bien:
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;
Par contre, ceci ne marche pas:
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);
Si quelqu'un a une solution au problème ou une solution équivalente je l'en remercie gracieusement .
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);
Merci encore...
Partager