|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 28 ![]() |
Bonjour,
J'ai une table 'clients' avec 2 clés 'unique': id_client (int autoincrement) et codecomptable_client (CHAR 6) Lorsque je fais un import depuis une application tierce, j'ai une requête Code :
REPLACE INTO clients (codecomptable_client, ... Problème: la mise à jour modifie également le id_client. Or, il ne le faut pas (c'est le lien avec plein d'autres tables). Comment dois-je m'y prendre ? |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Le problème vient du fait que REPLACE, quand il trouve une valeur existante sur une colonne indexée UNIQUE, la supprime puis la remplace par la nouvelle, au lieu de faire un UPDATE.
Ce qui explique que la colonne auto-incrémentée est alors modifiée. Il vaut mieux passer par une syntaxe INSERT INTO... ON DUPLICATE KEY UPDATE.... Voir la documentation de MySQL pour plus d'infos
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : octobre 2006 Messages : 28 ![]() |
OK, d'ac. C'est logique en effet.
J'essaie cela et je reviens. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com