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

Langage SQL Discussion :

contrainte intégrité référencielle


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 84
    Par défaut contrainte intégrité référencielle
    bonjour,

    voilà j'ai un souci pour supprimer un enregistrement d'une table ET supprimer par la mm occasion tout les enregistrements des autres tables liés à cet enregistrement. j'aurais voulu savoir comment procéder?

    désolé je sais pas si ma question est claire?

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    S'il existe des contraintes d'intégrités référencielles alors il faut commencer par supprimer les enregistrements liés avant de supprimer les enregistrements sources.

    Ex :
    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
    CREATE TABLE ETUDIANT
    (
      ETUDIANT_ID VARCHAR2(10) PRIMARY KEY,
      NOM VARCHAR2(30)
    )
    /
    CREATE TABLE VOITURE
    (
      VOITURE_ID  VARCHAR2(10) PRIMARY KEY,
      PLAQUE VARCHAR2(10)
    )
    /
    CREATE TABLE POSSEDE
    (
      ETUDIANT_ID VARCHAR2(10),
      VOITURE_ID  VARCHAR2(10),
      DATE_ACHAT  DATE,
      CONSTRAINT FCK_1 FOREIGN KEY (ETUDIANT_ID) REFERENCES ETUDIANT (ETUDIANT_ID),
      CONSTRAINT FCK_2 FOREIGN KEY (VOITURE_ID) REFERENCES VOITURE (VOITURE_ID)
    )
    /
    Une fois ces tables créées et des lignes insérées, essayons sous sqlplus (spécifique oracle) de supprimer toutes les voitures :
    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
     
     
    8i CYRIL> delete from voiture;
    delete from voiture
    *
    ERROR à la ligne 1 :
    ORA-02292: integrity constraint (CYRIL.FCK_2) violated - child record found
     
    8i CYRIL> delete from possede;
    1 ligne supprimée.
    8i CYRIL> delete from voiture;
    1 ligne supprimée.
    8i CYRIL> delete from etudiant;
    1 ligne supprimée.
    8i CYRIL>

  3. #3
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 949
    Par défaut
    Tu peux aussi déclarer la contrainte avec ON DELETE CASCADE...

Discussions similaires

  1. contraintes intégrité référentielle
    Par awalter1 dans le forum SQL
    Réponses: 2
    Dernier message: 19/03/2010, 17h08
  2. Réponses: 2
    Dernier message: 03/11/2009, 17h28
  3. Intégrité référencielle et INSERT
    Par Cyrille36 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 15/10/2008, 14h30
  4. Réponses: 1
    Dernier message: 10/04/2008, 12h44
  5. ORACLE : contraintes intégrité
    Par djbenvik dans le forum Oracle
    Réponses: 1
    Dernier message: 17/03/2006, 15h08

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