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

Oracle Discussion :

Mise à jour d'une table à partir d'une autre table


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 11
    Points : 10
    Points
    10
    Par défaut Mise à jour d'une table à partir d'une autre table
    Bonjour à tous et meilleurs voeux,

    J'ai une table temporaire TABLE_TEMP comportant les champs TOTO et TITI
    A partir de cette table je veux mettre à jour la table principale TABLE
    donc sachant que ma jointure se fait sur le champ toto :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE table
        SET table.titi = (SELECT titi
                 FROM table_temp
                 WHERE table_temp.toto = table.toto)
    Cette requête met bien à jour les enregistrements ayant une correspondance mais pour tous les autres le champs TITI est purement et simplement vidé.

    Qu'est-ce qui ne va pas ? Comment peut-on faire ?

    Merci et A+

    balises code ajoutées par Orafrance

  2. #2
    Membre régulier
    Inscrit en
    Octobre 2004
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 165
    Points : 98
    Points
    98
    Par défaut
    C'est quelle table ou le champ TITI est vidé? la table table_temp?

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    UPDATE table
        SET table.titi = (SELECT titi
                 FROM table_temp
                 WHERE table_temp.toto = table.toto)
    WHERE EXISTS (SELECT 1
                 FROM table_temp
                 WHERE table_temp.toto = table.toto)

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Salut eXiaNazaire

    C'est malheureusement la table principale qui est purgée !!!!!

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Merci Orafrance, ça fonctionne !
    Mais c'est bien vicieux ...

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    c'est surtout pas super pratique

    j'espère qu'Oracle va implémenter un systéme dénormalisé plus simple ... un jour peut-être

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/05/2014, 12h46
  2. Réponses: 9
    Dernier message: 23/11/2010, 10h10
  3. [WD14] mise à jour d'un enregistrement à partir d'une autre table
    Par piogo113 dans le forum WinDev
    Réponses: 9
    Dernier message: 05/05/2010, 19h06
  4. Réponses: 6
    Dernier message: 29/06/2006, 14h00
  5. [VB.NET] Mise à jour d'un site à partir d'une application
    Par boulete dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/04/2006, 12h15

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