PB de doublons avec ON DUPLICATE KEY UPDATE

Fermé
audrey - 16 mai 2011 à 13:25
 audrey - 16 mai 2011 à 15:51
Bonjour,

alors voilà, j'ai 2 tables qui se trouvent dans 2 bases différentes.

La 1ere table contient un certains nombres de champs, dont 3 que je veux recopier dans la seconde table qui elle est prévue juste pour ces 3 champs.

Comme je veux que la seconde table puisse être mise à jour selon les entrées de la 1ere,
j'en suis arrivée à la requête ci-dessous (après une longue prise de tête).

Le hic c'est que au lieu d'écraser les anciennes valeurs avec les nouvelles, les lignes sont répétées (les nouvelles lignes contiennent quand même les nouvelles données, oufff j'ai pas tout perdu), il y'a environ 1400 enregistrements, si à chaque passage j'en rajoute autant ça va vite être énorme et surtout n'importe quoi.

Bref je pense que j'ai fais une erreur ou omis quelque chose dans ma requête, mais quoi ???
si quelqu'un avait une idée, une solution, un zorro des requêtes...

$strSQL = $sql = "INSERT INTO racingw_inscrip.recup_pseudo_forum (user_id, username, user_email) (SELECT racingw_forum.php3_users.user_id, racingw_forum.php3_users.username, racingw_forum.php3_users.user_email FROM racingw_forum.php3_users) ON DUPLICATE KEY UPDATE
racingw_inscrip.recup_pseudo_forum.user_id = racingw_forum.php3_users.user_id";
$resultat = requete_SQL($strSQL);

Merci d'avance
Audrey

A voir également:

1 réponse

si ça intéresse quelqu'un j'ai trouvé :
il fallait mettre une clé primaire sur le champ user_id et modifier la requête ainsi :

$strSQL = $sql = "INSERT INTO racingw_inscrip.recup_pseudo_forum (user_id, username, user_email) (SELECT racingw_forum.php3_users.user_id, racingw_forum.php3_users.username, racingw_forum.php3_users.user_email FROM racingw_forum.php3_users) ON DUPLICATE KEY UPDATE
racingw_inscrip.recup_pseudo_forum.username = racingw_forum.php3_users.username,
racingw_inscrip.recup_pseudo_forum.user_email = racingw_forum.php3_users.user_email";
$resultat = requete_SQL($strSQL);
0