Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/09/2007, 15h52   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2005
Messages : 68
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : avril 2005
Messages : 68
Points : 13
Points : 13
Par défaut Couple unique sur 2 champs

Bonjour,

J'aimerai créer une table qui contient des couples ecarte les couple d'info dejà existants

ex : ( soit chp1 le premier champs et chp2 le second champ de la table )

chp1 : aaa
chp2 : bbb
Ok la ligne est insérée

puis

chp1 : aaa
chp2 : ccc
Ok la ligne est insérée meme si chp1 contient déja "aaa" car chp2 lui est différent (leur association n'existe pas encore dans la table)

mais

chp1 : aaa
chp2 : bbb
le couple des champs chp1 et chp2 existe déjà donc l'insertion n'est pas effectuée

Merci d'avance
creale10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 16h10   #2
Membre éprouvé
 
Avatar de nounetmasque
 
Inscription : janvier 2003
Messages : 491
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 491
Points : 488
Points : 488
Pour cela tu peux définir ton couple (champ_1, champ_2) comme clé primaire et utiliser l'option on duplicate key update de la fonction insert.
__________________
"Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant."
nounetmasque est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 16h31   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2005
Messages : 68
Détails du profil
Informations personnelles :
Âge : 30

Informations forums :
Inscription : avril 2005
Messages : 68
Points : 13
Points : 13
Très bien merci pour ta rapidité

mais
Code :
ON duplicate KEY UPDATE
sert à updater une valeur existante non ?

Comment pourrais-je faire dans ce cas pour n'opérer aucune modif si le couple existe ?

et comment spécifier que je travail sur 2 champs unique ( couple )



exemple ici je ne trouve pas où spécifier les 2 clés uniques
Code :
1
2
INSERT INTO TABLE (a,b,c) VALUES (1,2,3),(4,5,6)
    -> ON DUPLICATE KEY UPDATE c=VALUES(a)+VALUES(b);

J'espere ne pas etre trop lourd mais c'est tous nouveau pour moi sa !

:-)

Merci d'avance
creale10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 16h54   #4
Membre éprouvé
 
Avatar de nounetmasque
 
Inscription : janvier 2003
Messages : 491
Détails du profil
Informations forums :
Inscription : janvier 2003
Messages : 491
Points : 488
Points : 488
Si tu utilises cette fonction, tes colonnes champ_1, champ_2 doivent obligatoirement être la clé primaire. Si tu ne peux pas les définir comme tel il faut trouver une autre solution.

Avec cette option, tu commandes quels champs mettre à jour, je ne sais pas si tu peux pas trouver une astuce pour n'en mettre aucun à jour.... il faut tester
__________________
"Dieu reste muet, si seulement nous pouvions convaincre l'être humain d'en faire autant."
nounetmasque est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h21.


 
 
 
 
Partenaires

Hébergement Web