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

DB2 Discussion :

Update et Insert dans la même commande


Sujet :

DB2

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Update et Insert dans la même commande
    Bonjour

    Je voulais savoir si c'est possible de faire un update de la TABLE1 après un select de la TABLE1 puis un INSERT dans une TABLE2 dans la même commande.

    Merci d'avance pour votre aide.

    salutations

    Ossy

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 129
    Points : 38 543
    Points
    38 543
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Les commandes ce sont les ordres tels que start, stop, display, recover...

    Si la question est de savoir si l'on peut effectuer plusieurs ordres SQL dans une même transaction, alors la réponse est oui : il suffit de les séparer par un ";" et de positionner le commit ou le rollback en fin de transaction pour garantir la cohérence de l'ensemble

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Lemosi Fort et Vert
    Inscrit en
    Mars 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lemosi Fort et Vert
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 8
    Points : 34
    Points
    34
    Par défaut
    Bonjour je pense que vous devriez essayer l'ordre MERGE. Ci-joint un lien sur cet ordre,

    https://www.ibm.com/support/knowledg...sql_merge.html

    Attention tout de même, je déconseille cette syntaxe pour du traitement de masse. À tester mes repères ne sont pas tout jeunes ceci était vrai il y quelques années les choses ont sans doute évolué.

    Bonne journée.

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 129
    Points : 38 543
    Points
    38 543
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Gurdil87 Voir le message
    Bonjour je pense que vous devriez essayer l'ordre MERGE.
    Non : l'ordre merge permet de réaliser un ajout ou une mise à jour sur une même table, or ici, le besoin consiste à effectuer une insertion dans la table2 puis une mise à jour dans la table1 :

    Citation Envoyé par ossy01 Voir le message
    Je voulais savoir si c'est possible de faire un update de la TABLE1 après un select de la TABLE1 puis un INSERT dans une TABLE2 dans la même commande.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Lemosi Fort et Vert
    Inscrit en
    Mars 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Lemosi Fort et Vert
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 8
    Points : 34
    Points
    34
    Par défaut
    Bonjour Escartefigue,

    Voici la description de l'ordre:

    The MERGE statement updates a target (a table or view, or the underlying tables or views of a fullselect) using the specified input data.

    Il est donc possible de modifier plusieurs objets via MERGE.

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 129
    Points : 38 543
    Points
    38 543
    Billets dans le blog
    9
    Par défaut
    Oui, mais en même temps, voici ce qui est mentionné dans DB2 11 for z/OS SQL Reference (page 1829) :

    INTO table-name or view-name
    Identifies the target of the insert or update operations of the MERGE
    statement. The name must identify a table or view that exists at the current
    server.
    The name must not identify:
    v A catalog table
    v A created global temporary table
    v A read-only view
    v A system-maintained materialized query table
    v A table that is implicitly created for an XML column
    If a view is specified as the target of the MERGE statement, the view must not
    be defined with any INSTEAD OF triggers
    .


    La clause INTO étant unique, je ne vois pas comment plusieurs tables ou vues pourraient être concernées par le MERGE, en tout cas je ne l'ai jamais vu (sauf à créer une vue multi-table, ce qui est rare pour une MàJ)
    Par contre, il est possible d'utiliser plusieurs tables ou vues comme source de données afin d'exécuter l'ordre MERGE, mais vers une cible unique

    A moins qu'il s'agisse d'un option sur les DB2 non Z/OS ?

  7. #7
    Membre actif
    Homme Profil pro
    Architecte technique & logiciel IBM i
    Inscrit en
    Septembre 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte technique & logiciel IBM i
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2010
    Messages : 179
    Points : 275
    Points
    275
    Par défaut
    Bonjour.
    Et un trigger sur la table 1 (sur update) qui écrirait dans la table 2, ça ne pourrait pas convenir ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/08/2008, 16h27
  2. requete update et insertion dans 2 tables
    Par croke dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 28/05/2008, 12h45
  3. Réponses: 2
    Dernier message: 10/04/2008, 15h12
  4. Deux 'insert' dans la même table
    Par Arola78 dans le forum Access
    Réponses: 2
    Dernier message: 24/10/2006, 10h02
  5. sql update et insert dans la meme requete
    Par Jessicaa dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/12/2005, 15h39

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