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 Oracle Discussion :

UPDATE plusieurs tables


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut UPDATE plusieurs tables
    Bonjour je fais face à un petit problème.

    J'ai la possibilité de faire 3 update de suite pour mettre à jour des champs dans trois tables qui sont reliés par un même identificateur.

    Je voudrais savoir s'il est possible de faire tout cela dans 1 seul update du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    UPDATE table1
    SET table1.champ2 = modif1,
    table2.champ2 = modif2,
    table3.champ3 =  modif3
    JOIN table2 on table2.champ4 = table1.champ1
    JOIN table3 on table3.champ4 = table1.champ1
    WHERE table1.champ5 = bob
    AND table1.champ6 = ***

    Merci pour l'aide

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Quel est votre SGBD ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    J'utilise SQL_Developer d'oracle

  4. #4
    Membre confirmé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Points : 534
    Points
    534
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Quel est votre SGBD ?
    Citation Envoyé par wclef Voir le message
    J'utilise SQL_Developer d'oracle
    "Celui qui reconnaît consciemment ses limites est le plus proche de la perfection." Johann Wolfgang

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    J'utilise sql developer pour faire des requêtes à ma base de donnée
    et j'aimerais savoir s'il y a une façon de faire un update en une étape au lieu de trois

  6. #6
    Membre confirmé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Points : 534
    Points
    534
    Par défaut
    Citation Envoyé par wclef Voir le message
    J'utilise sql developer pour faire des requêtes à ma base de donnée
    et j'aimerais savoir s'il y a une façon de faire un update en une étape au lieu de trois
    J'ai bien peur que non... je crois qu'il te faut faire autant de clause UPDATE que tu as de tables.

    Tu n'as toujours pas repondu a la question de Waldar... c'est quoi la version de ta bd? c'est peut etre possible selon les versions.
    "Celui qui reconnaît consciemment ses limites est le plus proche de la perfection." Johann Wolfgang

  7. #7
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 838
    Points : 977
    Points
    977
    Par défaut
    L'inconvénient avec un UPDATE "GLOBAL" est qu'on ne peut pas pévoir de mesures exceptionnelles quand des situations anormales se présentent dans la transaction. Il devient alors difficile de circonscrire précisemment l'origine du problème alors qu'un découvage fin le permet. D'où l'expression si bien connue "Diviser pour mieux régner" !

    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  8. #8
    Membre confirmé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Points : 534
    Points
    534
    Par défaut
    Citation Envoyé par star Voir le message
    L'inconvénient avec un UPDATE "GLOBAL" est qu'on ne peut pas pévoir de mesures exceptionnelles quand des situations anormales se présentent dans la transaction. Il devient alors difficile de circonscrire précisemment l'origine du problème alors qu'un découvage fin le permet. D'où l'expression si bien connue "Diviser pour mieux régner" !

    .
    Essaies tu de dire qu'il est possible de faire trois updates sur 3 tables differentes en une seule commande? c'est bon a savoir ca... as tu la synthaxe?
    "Celui qui reconnaît consciemment ses limites est le plus proche de la perfection." Johann Wolfgang

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    oracle 11g si c'est ce que vous voulez dire par sgbd
    Oui cela serait intéressant d'avoir la syntaxe car je cherche et je cherche mais sans succès je suis très nouveau avec tout ce qui concerne les bases de données alors je ne sais pas si c'est possible de faire cela ou non si oui, comment

  10. #10
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 838
    Points : 977
    Points
    977
    Par défaut
    Non, je crois que cela n'existe pas dans la dernière version du SGDB Oracle, ni d'ailleurs dans les précédentes, si je ne m'abuse, d'où les apostrophes autour du GLOBAL. Je parlais plus de l'idée d'un tel ordre UPDATE qui pourrait être implémentée dans les futures versions, la prochaine en préparation par exemple 12g Beta.

    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  11. #11
    Membre confirmé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Points : 534
    Points
    534
    Par défaut
    En ce qui me concerne je ne vois pas la nécessité de faire un UPDATE sur plusieurs tables dans une même instruction SQL.
    Les contraintes de clé primaire/étrangère sont là pour ça ainsi que les triggers.
    "Celui qui reconnaît consciemment ses limites est le plus proche de la perfection." Johann Wolfgang

  12. #12
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    Citation Envoyé par star Voir le message
    Non, je crois que cela n'existe pas dans la dernière version du SGDB Oracle, ni d'ailleurs dans les précédentes, si je ne m'abuse, d'où les apostrophes autour du GLOBAL. Je parlais plus de l'idée d'un tel ordre UPDATE qui pourrait être implémentée dans les futures versions, la prochaine en préparation par exemple 12g Beta.

    .
    C'est pas la fête du slip le SQL..."Structured Query Language"...y'a des normes qui doivent être respectés.
    Juvamine

  13. #13
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 838
    Points : 977
    Points
    977
    Par défaut
    J'ai toujours cru que SQL voulait plutôt dire Sequential Query Language ou bien Simple Query Language. En tout cas, classiquement un langage de manipulation des données (Insert, update, delete, select étant le plus puissant des quatre).
    Question normes, il y a bien sûr l'AINSI mais longtemps Oracle faisait ce qu'il voulait et continue toujours à derroger de manière à pallier à certaines carances du SQL standard et positionner son moteur relationnel au top du podium.

    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  14. #14
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Citation Envoyé par wclef Voir le message
    oracle 11g si c'est ce que vous voulez dire par sgbd
    Oui tout à fait. Le SGBD c'est le moteur de la base de données, et ici c'est donc Oracle 11g.
    Oracle SQL Developer c'est l'outil qui vous permet d'accéder à ces données.
    Mais il permet de requêter également sur d'autres SGBD.

    Citation Envoyé par star Voir le message
    J'ai toujours cru que SQL voulait plutôt dire Sequential Query Language ou bien Simple Query Language.
    Pas tout à fait :
    [ame]http://fr.wikipedia.org/wiki/Structured_Query_Language[/ame]

    Citation Envoyé par star Voir le message
    Question normes, il y a bien sûr l'AINSI mais longtemps Oracle faisait ce qu'il voulait et continue toujours à derroger de manière à pallier à certaines carances du SQL standard et positionner son moteur relationnel au top du podium.
    Oui et non, Oracle est très souvent précurseur sur les fonctionnalités et donc souvent en avance sur la norme (ex : les hierarchies, introduites dès Oracle 2 de 1979 avec connect by).
    Mais au fur et à mesure des versions il s'en rapproche, parfois c'est rapide, parfois c'est très long (ex : la récursivité, dont l'implémentation complète via les CTE s'est achevée avec la 11gR2 presque 10 ans après sa normalisation !).

Discussions similaires

  1. update plusieur table
    Par arckaniann dans le forum Langage
    Réponses: 1
    Dernier message: 08/01/2012, 02h28
  2. UPDATE plusieurs tables
    Par billoum dans le forum Langage SQL
    Réponses: 3
    Dernier message: 09/08/2006, 13h27
  3. Update sur plusieurs tables
    Par yoyopi dans le forum DB2
    Réponses: 4
    Dernier message: 24/07/2006, 08h22
  4. Update de plusieurs tables, import fichier csv sql loader
    Par fusuke dans le forum SQL*Loader
    Réponses: 2
    Dernier message: 18/05/2006, 15h08
  5. update sur plusieurs tables
    Par Jean-Matt dans le forum Langage SQL
    Réponses: 14
    Dernier message: 04/01/2006, 14h30

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