replace into et 2 clés uniques
9 messages
• Page 1 sur 1
-

xdeslandes - WRInaute occasionnel

- Messages: 393
- Inscription: 29 Déc 2004
replace into et 2 clés uniques
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 :
Sélectionner tout - Visualiser dans une fenêtre à part
Le but est que si l'application tierce m'envoie un client avec le même code client, je fait un mise à jour et non un ajout.
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 ?
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 :
Sélectionner tout - Visualiser dans une fenêtre à part
- Code: Tout sélectionner
REPLACE INTO clients (codecomptable_client, ...
Le but est que si l'application tierce m'envoie un client avec le même code client, je fait un mise à jour et non un ajout.
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 ?
-

xdeslandes - WRInaute occasionnel

- Messages: 393
- Inscription: 29 Déc 2004
Re: replace into et 2 clés uniques
En fait, je vais tenter avec
Mais dans ce cas, je n'ai pas mis la clé id_client en 'unique' mais en 'index'. Seule l'autre clé codecomptable_client reste en 'unique'.
Qu'en pensez-vous ?
- Code: Tout sélectionner
INSERT INTO ... ON DUPLICATE KEY UPDATE ...
Mais dans ce cas, je n'ai pas mis la clé id_client en 'unique' mais en 'index'. Seule l'autre clé codecomptable_client reste en 'unique'.
Qu'en pensez-vous ?
-

xdeslandes - WRInaute occasionnel

- Messages: 393
- Inscription: 29 Déc 2004
Re: replace into et 2 clés uniques
surtout pas: je veux qu'il y ait insertion, sauf si codecomptable_client est déjà connu dans la base, alors on fait un update.
-

bproductiv - WRInaute accro

- Messages: 4173
- Inscription: 27 Déc 2004
Re: replace into et 2 clés uniques
Dans ce cas là je ferais un if en php (je connais pas assez en sql) : if (select codecomptable_client from table = lecodecherché) UPDATE else INSERT
-

xdeslandes - WRInaute occasionnel

- Messages: 393
- Inscription: 29 Déc 2004
Re: replace into et 2 clés uniques
Salut bproductiv 
Ta solution vient effectivement à l'esprît, mais demande 2 requêtes SQL. Sachant que l'import peut comporter des milliers de ligne, j'évite.
Ta solution vient effectivement à l'esprît, mais demande 2 requêtes SQL. Sachant que l'import peut comporter des milliers de ligne, j'évite.
-

bproductiv - WRInaute accro

- Messages: 4173
- Inscription: 27 Déc 2004
Re: replace into et 2 clés uniques
Oui c'est clair, tout dépend la bécane derrière, avec openedge (concurrent d'oracle) je le fais sans soucis avec des milliers de lignes et ca bronche pas 
-

xdeslandes - WRInaute occasionnel

- Messages: 393
- Inscription: 29 Déc 2004
Re: replace into et 2 clés uniques
J'ai résolu mon affaire avec
J'ai donc une seul clé de type 'unique'. La clé id_client qui est auto_increment est en 'index'.
Merci à vous. Tshaw (comme dirait Edika) !
- Code: Tout sélectionner
INSERT INTO ... ON DUPLICATE KEY UPDATE...
J'ai donc une seul clé de type 'unique'. La clé id_client qui est auto_increment est en 'index'.
Merci à vous. Tshaw (comme dirait Edika) !
9 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- fonction replace
- replace PHP
- [Résolu]Problème JS - replace
- Fonction Replace - MYSQL
- window.location.replace('**ça merdouille**')
- visiteurs uniques vs visiteurs uniques absolus
- Accents avec eregi replace // indexation Google
- replace en masse dans un répertoire et ses sous repertoires.
- Sanction Google - H1 en début code puis replacé dans le footer en css
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité




