Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Inscrit
    Inscrit en
    mai 2004
    Messages
    944
    Détails du profil
    Informations forums :
    Inscription : mai 2004
    Messages : 944
    Points : 359
    Points
    359

    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 :
    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 :
    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 Olivier Dehorter
    Ingenieur de recherche - Ecologue
    Inscrit en
    juin 2003
    Messages
    975
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier Dehorter
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : juin 2003
    Messages : 975
    Points : 1 218
    Points
    1 218

    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
    Inscrit en
    mai 2004
    Messages
    944
    Détails du profil
    Informations forums :
    Inscription : mai 2004
    Messages : 944
    Points : 359
    Points
    359

    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 Olivier Dehorter
    Ingenieur de recherche - Ecologue
    Inscrit en
    juin 2003
    Messages
    975
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier Dehorter
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : juin 2003
    Messages : 975
    Points : 1 218
    Points
    1 218

    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
    Inscrit en
    mai 2004
    Messages
    944
    Détails du profil
    Informations forums :
    Inscription : mai 2004
    Messages : 944
    Points : 359
    Points
    359

    Par défaut

    ok la je pense avoir compris merci

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •