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 : 59
    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 SQL 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
    Expert éminent

    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    3 215
    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 : 3 215
    Points : 7 123
    Points
    7 123
    Billets dans le blog
    1

    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
    6
    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 : 6
    Points : 27
    Points
    27

    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
    Expert éminent

    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    3 215
    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 : 3 215
    Points : 7 123
    Points
    7 123
    Billets dans le blog
    1

    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
    6
    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 : 6
    Points : 27
    Points
    27

    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
    Expert éminent

    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    3 215
    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 : 3 215
    Points : 7 123
    Points
    7 123
    Billets dans le blog
    1

    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 habitué
    Homme Profil pro
    Architecte technique
    Inscrit en
    septembre 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Santé

    Informations forums :
    Inscription : septembre 2010
    Messages : 119
    Points : 176
    Points
    176

    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: 10/04/2008, 16h12
  2. [SQL] Avoir le résultat dans la même page
    Par commedab dans le forum PHP & SGBD
    Réponses: 5
    Dernier message: 22/03/2007, 22h44
  3. Deux 'insert' dans la même table
    Par Arola78 dans le forum Access
    Réponses: 2
    Dernier message: 24/10/2006, 11h02
  4. [SQL] Update et soustraction dans un champ
    Par Artous dans le forum PHP & SGBD
    Réponses: 8
    Dernier message: 15/03/2006, 17h25
  5. sql update et insert dans la meme requete
    Par Jessicaa dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/12/2005, 16h39

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