p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Inscrit
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2004
    Messages
    1 151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mai 2004
    Messages : 1 151
    Points : 550
    Points
    550

    Par défaut Comprendre la syntaxe de Insert or Update

    Bonjour a tous
    j'ai besoin d'utiliser pour effectuer des mises a jour entre deux bases.
    Mon problème est que je veut comprendre comment ça marche. pas trop a l'aise avec l'anglais
    Pour le moment voila ce que je pense comprendre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE OR INSERT INTO MATABLE (Champ1,Champ2)VALUES(:Champ1,:Champ2)
    Dans cet exemple:
    Si un des champs (champ1 ou champ2) est différents de l'ancien enregistrement, on a un UPDATE du champ concerné.
    Si les deux champs (champ1 et champ2) sont differents de l'ancien enregistrement, on un INSERT.
    Es vrai ?

    Ensuite j'ai le cas suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE OR INSERT INTO MATABLE (Champ1,Champ2)VALUES(:Champ1,:Champ2) matching (champ1)
    Dans cet exemple :
    A quoi sert la clause MATCHING

    Merci pour vos éclaircissements

  2. #2
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    juin 2003
    Messages
    1 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : juin 2003
    Messages : 1 019
    Points : 1 367
    Points
    1 367

    Par défaut

    Le MATCHING est là pour indiquer les colonnes qui vont déterminer si c'est le UPDATE qui doit être utiliser ou le INSERT

    Ex (je dis bien exemple)
    Tu utilises les colonnes NOM et PRENOM comme MATCHING. Ainsi si la donnée existe déjà avec ce nom ET prénom, l'UPDATE sera utilisé sinon il ajoute cette personne.
    ATTENTION, il faut que la donnée NOM, PRENOM soit unique (imagines 2 homonyme, sur quelle personne doit porter l'UPDATE -d'où mon préambule sur "c'est un exemple")

  3. #3
    Inscrit
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2004
    Messages
    1 151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mai 2004
    Messages : 1 151
    Points : 550
    Points
    550

    Par défaut

    Excuse moi mais es a dire que ma première réflexion est correcte ?

    Si c'est le cas sans en l'absence de la clause MATCHING
    il va utiliser la clé primaire de la table ?
    (c'est ce que j'ai cru comprendre dans la doc en anglais)
    merci

  4. #4
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    juin 2003
    Messages
    1 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : juin 2003
    Messages : 1 019
    Points : 1 367
    Points
    1 367

    Par défaut

    Non pas forcement.

    Si tu as un numéro d'ordre (auto-incrémenté) donc rarement connu, il ne peux te servir pour MATCHER la donnée, mais il faut que la ligne issue du MATCHING soit unique. Le mieux étant qu'il existe une contrainte d'unicité pour cette colonne ou cet ensemble de colonne. j'espère être clair ?

  5. #5
    Inscrit
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2004
    Messages
    1 151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : mai 2004
    Messages : 1 151
    Points : 550
    Points
    550

    Par défaut

    ok la je pense avoir compris merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. performance delete/insert vs update
    Par Dionisos dans le forum Langage SQL
    Réponses: 6
    Dernier message: 01/08/2005, 18h23
  2. [Debutant] Insert ou update...
    Par kluh dans le forum Oracle
    Réponses: 15
    Dernier message: 13/07/2005, 14h35
  3. événement sur INSERT, DELETE, UPDATE
    Par papouAlain dans le forum MS SQL-Server
    Réponses: 3
    Dernier message: 24/12/2004, 15h40
  4. [langage] comprendre une syntaxe particulière
    Par mat21 dans le forum Langage
    Réponses: 4
    Dernier message: 08/12/2004, 18h12
  5. [Débutant][PS] modifier un insert en update
    Par franculo_caoulene dans le forum MS SQL-Server
    Réponses: 5
    Dernier message: 19/05/2004, 16h33

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