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