IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Insertion/remplacement dans une table


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Juillet 2006
    Messages : 232
    Points : 79
    Points
    79
    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.

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 016
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 016
    Points : 23 705
    Points
    23 705
    Par défaut
    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 et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  3. #3
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Juillet 2006
    Messages : 232
    Points : 79
    Points
    79
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    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 : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    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 Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « 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 la suite Linux Mageïa !

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Juillet 2006
    Messages : 232
    Points : 79
    Points
    79
    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.

  6. #6
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Moi je verrais plutôt un On DUPLICATE KEY, qui supporte les opérations ensemblistes

Discussions similaires

  1. Insertion directe dans une table
    Par zzinfo dans le forum SQL
    Réponses: 2
    Dernier message: 28/02/2006, 15h17
  2. [9i] insertion sequentiel dans une table
    Par djalil dans le forum Oracle
    Réponses: 4
    Dernier message: 17/11/2005, 19h06
  3. [JSP]probleme d'insertion float dans une table
    Par karamazov994 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/04/2005, 11h49
  4. Insertion valeure dans une table
    Par krfa1 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/03/2005, 10h50
  5. trouver et remplacer dans une table paradox
    Par Yepazix dans le forum Bases de données
    Réponses: 3
    Dernier message: 23/09/2004, 02h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo