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 :

Oracle: impact d'une suppression de table liée à une vue


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de jamesleouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 522
    Par défaut Oracle: impact d'une suppression de table liée à une vue
    Bonjour,

    en admettant que l'on ait une vue crée à partir d'une jointure entre plusieurs tables.
    Que se passe t-il lorsque l'on supprime l'une d'entre elles? ou toutes?
    (avant de les recréer et en sachant qu'il n'y aura pas de select sur les vues pendant le temps intermédiaire)

    Je ne trouve pas grand chose sur ce sujet sur le net, et je ne peux pas vraiment faire le test grandeur nature pour le moment...

  2. #2
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    La vue sera simplement invalidée.
    si on fait un select dessus lorsaue les tables sont plus là, il y aura une erreur.
    si on fait un select dessus lorsaue les tables sont plus là, elle deviendra à nouveau valide.
    Cordialement,
    Franck.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 412
    Par défaut
    Bonjour,

    Faire un test ca peut-etre tout petit. Ca ne signifie pas toucher a des vrais objets.

    Sans compter que ca donne confiance dans le résultat, au lieu de se baser sur la réponse d'un inconnu trouve sur un forum.
    (Je veux pas dire que les gens disent n'importe quoi volontairement)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    create table tmp (n number, padding varchar2(10));
    create table tmp2(n number, padding varchar2(10));
    begin
    for i in 1..10 loop
       insert into tmp values (i,lpad(i,10,'x'));
       insert into tmp2 values (i,lpad(i,10,'y'));
    end loop;
    end;
    /
    create view tmp_view as (select t1.n as n,t1.padding as padd1, t2.padding as padd2 from tmp t1, tmp2 t2 where t1.n=t2.n);
       select * from tmp_view;
       drop table tmp2;
       select * from tmp_view;
     
    drop table tmp;
    drop table tmp2;
    drop view tmp_view;

  4. #4
    Membre éclairé Avatar de jamesleouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 522
    Par défaut
    Merci bien à vous deux.
    Ca me rassure.

    Je sais bien que l'on peut faire un test vite fait, mais je me disais qu'un petit test ne répondrais pas à toutes mes questions/appréhensions.

    Je trouve cela étonnant que la vue reste présente lorsque l'une des tables sur laquelle elle est basée est supprimée.

    Merci beaucoup

  5. #5
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par jamesleouf Voir le message
    Je trouve cela étonnant que la vue reste présente lorsque l'une des tables sur laquelle elle est basée est supprimée.
    Étonnant peut-être, mais pratique, non ?
    Car les dépendances entre objets sont nombreuses, et parfois en cascade sur plusieurs niveaux (entre tables, vues, synonymes, procédures, fonctions, paquetages, déclencheurs, etc).
    Si tous les objets dépendants (directement ou en cascade) étaient supprimés dès qu'un objet référencé est modifié ou supprimé, ça serait une sacrée galère.
    Mais non, dans le pire de cas, vous aurez des objets invalides, qui redeviendront valides après avoir rétabli les objets manquants.
    Et dans le meilleur des cas, vous ne vous rendrez même pas compte de l'absence temporaire d'un objet.

  6. #6
    Membre éclairé Avatar de jamesleouf
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 522
    Par défaut
    oui c'est clair.
    Mais, en imaginant qu'il y a une requête qui s'exécute sur la vue, au moment ou l'une des tables qui lui est liée est supprimée, ça ferait sans doute un gros bug... Surtout si l'Exception n'est pas gérée... non?

    Merci beaucoup à tout le monde.

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

Discussions similaires

  1. [LibreOffice][Base de données] Recuperer une liste de tables et une liste de champs d'une table sur LibreOffice & OpenOffice
    Par gerard.sauvage dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 08/04/2014, 12h35
  2. Suppression de tables dans une base de données Mysl
    Par Furius dans le forum Requêtes
    Réponses: 6
    Dernier message: 07/06/2013, 10h34
  3. Formulaire affichant deux tables liées à une troisième
    Par Mimi-des-îles dans le forum Access
    Réponses: 1
    Dernier message: 23/02/2006, 13h47
  4. Table Liée à une base Access
    Par Antichoc dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/01/2006, 17h49
  5. Table Liée à une base Access
    Par Antichoc dans le forum Access
    Réponses: 5
    Dernier message: 09/01/2006, 16h58

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