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 :

Maj d'une table à partir d'une autre


Sujet :

Oracle

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Maj d'une table à partir d'une autre
    Bonjour,

    J'ai un user A avec une table T1 et un user B possédant également une
    table T1 (exactement la même structure).
    Les user A et B sont des users de production sur des machines
    différentes (sur un même réseau) pour des sociétés différentes mais
    nécessitant une mise à niveau régulière (tous les week end) de A vers B.

    Je souhaite mettre à jour B.T1 à partir de A.T1 mais uniquement ce qui
    a bougé dans la semaine (nouvelles lignes de A.T1 ou colonnes modifiées
    pour les lignes existantes dans les 2 tables).

    Quelqu'un a t-il une idée sur la méthode que je pourrais employer ?

    Merci pour vos idées

    Gabriel

  2. #2
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Si tu es en 9i (merci à l'avenir de préciser la version), tu as l'instruction merge qui te permet d'insérer et de mettre à jour une table.

    Sinon :
    - pour l'insertion des nouvelles lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    insert into b.t1 (col1, col2, ..., coln)
    select col1, col2, ..., coln
    from a.t1 a
    where not exists (select 1 from b.t1 where col_id = a.col_id);
    - pour la mise à jour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    update b.t1 b
    set (col1, col2, ..., coln) = (select col1, col2, ..., coln from a.t1 where col_id = b.col_id)
    where exists (select 1 from a.t1 where col_id = b.col_id and (col1 != b.col1 or ... or coln != b.coln);

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/06/2012, 12h12
  2. [Tables] Update d'une table à partir d'une autre
    Par le_niak dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/01/2008, 09h01
  3. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24
  4. remplir un champ d'une table à partir d'une autre table
    Par MrsFrizz dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/02/2005, 16h48
  5. Réponses: 5
    Dernier message: 06/01/2005, 12h07

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