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

SQL Firebird Discussion :

Comprendre la syntaxe de Insert or Update


Sujet :

SQL Firebird

  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    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 expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    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")
    Merci d'ajouter un sur les tags qui vous ont aidé

  3. #3
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    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 expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    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 ?
    Merci d'ajouter un sur les tags qui vous ont aidé

  5. #5
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 679
    Points : 954
    Points
    954
    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