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 :

suppression d'une clef primaire dans une table sous oracle10g


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 104
    Points : 40
    Points
    40
    Par défaut suppression d'une clef primaire dans une table sous oracle10g
    Bonjour,

    Est ce que c'est normal lorsque on supprime une clef primaire d'une table, l'index associé à ce champ ne sera supprimé sous oracle 10g?

    je sais dans oracle 9, on n'a pas ce probléme

    Merci d'avance

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Non, ce n'est pas normal car comme l'index matérialise la contrainte de clé unique, cela revient à garder la contrainte. Je n'arrive pas à reproduire ce cas avec la 10.2.0.1:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    dev001> select * from v$version;
     
    BANNER
    ----------------------------------------------------------------
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
    PL/SQL Release 10.2.0.1.0 - Production
    CORE    10.2.0.1.0      Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
     
    dev001>
    dev001> drop table t;
     
    Table dropped.
     
    dev001> create table t(x int);
     
    Table created.
     
    dev001> alter table t add primary key(x);
     
    Table altered.
     
    dev001> select table_name, index_name from user_indexes where table_name ='T';
     
    TABLE_NAME                     INDEX_NAME
    ------------------------------ ------------------------------
    T                              SYS_C002816
     
    dev001> alter table t drop primary key;
     
    Table altered.
     
    dev001> select table_name, index_name from user_indexes where table_name ='T';
     
    no rows selected

  3. #3
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Et si tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE UNIQUE INDEX PKNAME
    , puis un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ALTER TABLE MATABLE ADD (
      CONSTRAINT PKNAME PRIMARY KEY (PK_COLS)
        USING INDEX
    puis que tu supprimes la contrainte ?
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  4. #4
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    En effet si l'index n'est pas créé par la contrainte, il semble bien qu'il y a une différence entre Oracle 9 et Oracle 10: le DROP CONSTRAINT en version 9 supprime l'index mais ne le supprime en version 10.

Discussions similaires

  1. Inserrer un champ de Clef Primaire dans une table
    Par Bonero dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 03/07/2012, 15h37
  2. Insertion d'une clé primaire dans une autre table
    Par kensem dans le forum PL/SQL
    Réponses: 1
    Dernier message: 26/05/2011, 23h33
  3. Vérifier si une colonne est une clé primaire dans une table
    Par mazquindz dans le forum Développement
    Réponses: 1
    Dernier message: 15/06/2009, 13h38
  4. enlever et remettre une cle primaire dans une table.
    Par scons dans le forum VBA Access
    Réponses: 3
    Dernier message: 30/07/2008, 15h17
  5. Comment comment définir une clef primaire dans une table??
    Par nek_kro_kvlt dans le forum Bases de données
    Réponses: 4
    Dernier message: 07/02/2005, 21h06

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