Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels 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 19/12/2010, 12h01   #1
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 104
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : juillet 2006
Messages : 104
Points : 29
Points : 29
Par défaut Insertion/remplacement dans une table

Bonjour à tous,

Je vous explique ma situation: j'ai une seule table T(c1,c2,c3,c4) sous MySQL et elle contient plusieurs millions de lignes. Chaque semaine je dois prendre quelques centaines de lignes donc d'enregistrements et les 'rajouter' à ma table.

Au fait
si le champs c3 est à 1 je veux faire une insertion.

sinon je fais un remplacement par les nouvelles valeurs.


Merci infiniment de votre aide.
maestro1303 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2010, 10h19   #2
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 443
Points : 6 443
Bonjour,

J'avoue ne pas bien comprendre ce que vous souhaitez faire exactement.
Pouvez-vous nous donner un exemple de lignes à insérer, de lignes à mettre à jour, de ce que vous souhaitez insérer et mettre à jour...

Bref, si vous voulez de l'aide, il va falloir être un peu plus concret.

ced
__________________
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
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2010, 12h44   #3
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 104
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : juillet 2006
Messages : 104
Points : 29
Points : 29
Par défaut Insert/Update Conditionnels

Tout d'abord permettez moi de remercier le modérateur qui a déplacé mon post de DB2 à Mysql.

Merci également de la précédente réponse. Je vous explique. J'ai une table qui conteient les 5 champs comme indiqué ci dessous:

Code :
1
2
3
4
5
6
7
8
9
10
11
code	  num	            KES	               noX	               dcre

1963486	196348690000734	3	XXXX RRR DDD VCTCV	  20101228
9138043	913804392929134	2	CCCC UUU YY TT	               20101228
9983684	998368499800284	3	HHHH NNN M KKKAAA	  20101227
9316686	931668699800294	2	LLL JJJJ TTTT VVV	             20101227
9316818	931681899813814	1	AAAASSSSS C VTTTTT	  20101228
9316848	931684899823764	2	FFFFF EEEE ZZZZ T	  20101229
9316804	931680499855064	2	AAA BBBB CCCC	               20101227
8100992	810099299890904	2	XXX YYY AA	               20101229
Le deuxième champs num est une clé le dernier champ dcre est une date.
Pour ajouter une liste d'enregistrement à cette table j'ai 2 alternatives:
1) le champs num existe déjà alors je mets à jour les champs: code, KES(kes:=kes+1), noX, dcre(UPDATE etc...).
2) le champs num n'existe pas alors je rajoute tout l'enregistement(INSERT INTO etc...).

voilà voilà.

J'espère avoir été clair.

Merci infiniment.
maestro1303 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2010, 13h02   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 980
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 980
Points : 18 224
Points : 18 224
Envoyer un message via MSN à CinePhil
Alors je pense qu'il faut faire un trigger INSTEAD OF INSERT qui va d'abord vérifier si le num existe déjà et faire une mise à jour au lieu d'une insertion sinon laisser faire l'insertion.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2010, 18h59   #5
Nouveau Membre du Club
 
Inscription : juillet 2006
Messages : 104
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : juillet 2006
Messages : 104
Points : 29
Points : 29
Par défaut trigger instead

Excusez mon ignorance des triggers, Je sais tout juste que c'est lié à une table(sorte de processus qui se déclenche si une condition préétablie se réalise), mais je n'ai jamais vu une personne l'appliquer. Merci encore une fois de bein vouloir corriger la définition/concept.

Supposons que j'aie une table Mousbak avec les champs (code, num, kes,nox,dcre) Avec num clé primaire. Comment mettre un place un tel trigger.


Je suis sous mysql 5.1.52


Merci beaucoup.
maestro1303 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2010, 19h24   #6
Membre Expert
 
Inscription : août 2008
Messages : 1 271
Détails du profil
Informations forums :
Inscription : août 2008
Messages : 1 271
Points : 1 929
Points : 1 929
Moi je verrais plutôt un On DUPLICATE KEY, qui supporte les opérations ensemblistes
skuatamad 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 10h48.


 
 
 
 
Partenaires

Hébergement Web