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 :

Violation de contrainte d'intégrité "clé parent introuvable"


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mai 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 75
    Par défaut Violation de contrainte d'intégrité "clé parent introuvable"
    Bonjour je me permets de venir vers vous car j'essaie d'insérer des données dans ma table sans succés. Pourriez-vous m'aider merci.

    Voici mon script de création pour les tables ainsi que les inserts.

    ------------------------------------------
    -- Records of Pl_Immeuble -----------
    ------------------------------------------
    INSERT INTO PL_IMMEUBLE (ADRESSE, NBETAGES, NOMPROPRIETAIRE) VALUES('Rue du parc - lille', 2, 'Dufour');

    CREATE TABLE Pl_Appartement(
    Adresse VARCHAR2(50),
    N_Appartement NUMBER(3),
    NomOccupant VARCHAR2(50),
    Type VARCHAR2(10),
    Superficie NUMBER(4),
    Etage VARCHAR2(3) NOT NULL,
    CONSTRAINTS pk_Appartement PRIMARY KEY(Adresse, N_Appartement));
    ------------------------------------------
    -- Records of Pl_Appartement --------
    ------------------------------------------
    INSERT INTO PL_APPARTEMENT (ADRESSE, N_APPARTEMENT, ETAGE) VALUES('Rue du parc - Lille', 1, 'Rdc');
    INSERT INTO PL_APPARTEMENT (ADRESSE, N_APPARTEMENT, ETAGE) VALUES('Rue du parc - Lille', 2, 'Rdc');
    INSERT INTO PL_APPARTEMENT (ADRESSE, N_APPARTEMENT, ETAGE) VALUES('Rue du parc - Lille', 3, '1er');
    INSERT INTO PL_APPARTEMENT (ADRESSE, N_APPARTEMENT, ETAGE) VALUES('Rue du parc - Lille', 4, '1er');
    INSERT INTO PL_APPARTEMENT (ADRESSE, N_APPARTEMENT, ETAGE) VALUES('Rue du parc - Lille', 5, '2em');
    INSERT INTO PL_APPARTEMENT (ADRESSE, N_APPARTEMENT, ETAGE) VALUES('Rue du parc - Lille', 6, '2em');

    ------------------------------------------
    -- Table structure for "Pl_Personne" ----
    ------------------------------------------
    CREATE TABLE Pl_Personne(
    Nom VARCHAR2(50),
    Adresse VARCHAR2(50) NOT NULL,
    N_Appartement NUMBER(3) NOT NULL,
    DateArrivee DATE,
    DateDepart DATE,
    Age NUMBER(3),
    Profession VARCHAR2(50),
    CONSTRAINTS pk_Personne PRIMARY KEY(Nom, Adresse, N_Appartement, DateArrivee),
    CONSTRAINTS fk_Personne_Appart FOREIGN KEY(Adresse, N_Appartement) REFERENCES Pl_Appartement(Adresse, N_Appartement));
    ------------------------------------------
    -- Records of Pl_Personne --------
    ------------------------------------------
    INSERT INTO Pl_Personne (NOM, ADRESSE, N_APPARTEMENT, DATEARRIVEE) VALUES('Dufour', 'Rue du parc - Lille', 1, TO_DATE('1996-07-04 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
    INSERT INTO Pl_Personne (NOM, ADRESSE, N_APPARTEMENT, DATEARRIVEE) VALUES('TEST1', 'Rue du parc - Lille', 2, TO_DATE('1997-07-04 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
    INSERT INTO Pl_Personne (NOM, ADRESSE, N_APPARTEMENT, DATEARRIVEE) VALUES('TEST2', 'Rue du parc - Lille', 3, TO_DATE('1998-07-04 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
    INSERT INTO Pl_Personne (NOM, ADRESSE, N_APPARTEMENT, DATEARRIVEE) VALUES('TEST3', 'Rue du parc - Lille', 4, TO_DATE('1999-07-04 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
    INSERT INTO Pl_Personne (NOM, ADRESSE, N_APPARTEMENT, DATEARRIVEE) VALUES('TEST4', 'Rue du parc - Lille', 5, TO_DATE('2000-07-04 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));
    INSERT INTO Pl_Personne (NOM, ADRESSE, N_APPARTEMENT, DATEARRIVEE) VALUES('TEST5', 'Rue du parc - Lille', 6, TO_DATE('2001-07-04 00:00:00', 'YYYY-MM-DD HH24:MI:SS'));

    CREATE TABLE Pl_Facture(
    Numero NUMBER(10),
    Nom VARCHAR2(50),
    Adresse VARCHAR2(50) NOT NULL,
    N_Appartement NUMBER(3) NOT NULL,
    DateFacture DATE,
    Montant NUMBER(9,2) NOT NULL,
    CONSTRAINTS pk_Facture PRIMARY KEY(Numero),
    CONSTRAINTS fk_Facture_Imm FOREIGN KEY(Adresse) REFERENCES pl_Immeuble(Adresse),
    CONSTRAINTS fk_Facture_Appart FOREIGN KEY(Adresse, N_Appartement) REFERENCES Pl_Appartement(Adresse, N_Appartement));

    ------------------------------------------
    -- Table structure for "Pl_Facture" ----
    ------------------------------------------
    CREATE TABLE Pl_Facture(
    Numero NUMBER(10),
    Nom VARCHAR2(50),
    Adresse VARCHAR2(50) NOT NULL,
    N_Appartement NUMBER(3) NOT NULL,
    DateFacture DATE,
    Montant NUMBER(9,2) NOT NULL,
    CONSTRAINTS pk_Facture PRIMARY KEY(Numero),
    CONSTRAINTS fk_Facture_Imm FOREIGN KEY(Adresse) REFERENCES pl_Immeuble(Adresse),
    CONSTRAINTS fk_Facture_Appart FOREIGN KEY(Adresse, N_Appartement) REFERENCES Pl_Appartement(Adresse, N_Appartement));
    ------------------------------------------
    -- Records of Pl_Facture -----------
    ------------------------------------------
    INSERT INTO Pl_Facture (NUMERO, ADRESSE, N_APPARTEMENT, MONTANT) VALUES(1001, 'Rue du parc - Lille', 1, 165000);
    INSERT INTO Pl_Facture (NUMERO, ADRESSE, N_APPARTEMENT, MONTANT) VALUES(1002, 'Rue du parc - Lille', 2, 165.00);
    INSERT INTO Pl_Facture (NUMERO, ADRESSE, N_APPARTEMENT, MONTANT) VALUES(1003, 'Rue du parc - Lille', 3, 265.00);
    INSERT INTO Pl_Facture (NUMERO, ADRESSE, N_APPARTEMENT, MONTANT) VALUES(1004, 'Rue du parc - Lille', 4, 165.00);
    INSERT INTO Pl_Facture (NUMERO, ADRESSE, N_APPARTEMENT, MONTANT) VALUES(1005, 'Rue du parc - Lille', 5, 365.00);
    INSERT INTO Pl_Facture (NUMERO, ADRESSE, N_APPARTEMENT, MONTANT) VALUES(1006, 'Rue du parc - Lille', 6, 165.00);

    Commit;
    Quoique je fasse je récupère toujours l'erreur ci dessous (allez savoir pourquoi !) Je ne comprends pas.
    Images attachées Images attachées  

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Votre script est incomplète donc impossible de le tester. Mais de toute façon l'erreur vous indique que dans la table maître il vous manque l'enregistrement que vous essayez de référencer.

  3. #3
    Membre confirmé
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Mai 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2014
    Messages : 75
    Par défaut
    En effet désolé.
    Voici le script complet.

    ------------------------------------------
    -- Table structure for "Pl_Immeuble" ----
    ------------------------------------------
    CREATE TABLE Pl_Immeuble(
    Adresse VARCHAR2(50),
    NbEtages NUMBER(3) NOT NULL,
    DateConstruction DATE,
    NomProprietaire VARCHAR2(50) NOT NULL,
    CONSTRAINTS pk_Immeuble PRIMARY KEY(Adresse));

    ------------------------------------------
    -- Records of Pl_Immeuble -----------
    ------------------------------------------
    INSERT INTO PL_IMMEUBLE VALUES('Rue du parc - lille', 2, NULL, 'Dufour');
    ------------------------------------------
    -- Table structure for "Pl_Appartement" --
    ------------------------------------------
    CREATE TABLE Pl_Appartement(
    Adresse VARCHAR2(50),
    N_Appartement NUMBER(3),
    NomOccupant VARCHAR2(50),
    Type VARCHAR2(10),
    Superficie NUMBER(4),
    Etage VARCHAR2(3) NOT NULL,
    CONSTRAINTS pk_Appartement PRIMARY KEY(Adresse, N_Appartement));

    ------------------------------------------
    -- Records of Pl_Appartement --------
    ------------------------------------------
    INSERT INTO PL_APPARTEMENT VALUES('Rue du parc - Lille', 1, 'Dufour', NULL, NULL, 'Rdc');
    INSERT INTO PL_APPARTEMENT VALUES('Rue du parc - Lille', 2, NULL, NULL, NULL, 'Rdc');
    INSERT INTO PL_APPARTEMENT VALUES('Rue du parc - Lille', 3, NULL, NULL, NULL, '1er');
    INSERT INTO PL_APPARTEMENT VALUES('Rue du parc - Lille', 4, NULL, NULL, NULL, '1er');
    INSERT INTO PL_APPARTEMENT VALUES('Rue du parc - Lille', 5, NULL, NULL, NULL, '2em');
    INSERT INTO PL_APPARTEMENT VALUES('Rue du parc - Lille', 6, NULL, NULL, NULL, '2em');

    ------------------------------------------
    -- Table structure for "Pl_Personne" ----
    ------------------------------------------
    CREATE TABLE Pl_Personne(
    Nom VARCHAR2(50),
    Adresse VARCHAR2(50) NOT NULL,
    N_Appartement NUMBER(3) NOT NULL,
    DateArrivee DATE,
    DateDepart DATE,
    Age NUMBER(3),
    Profession VARCHAR2(50),
    CONSTRAINTS pk_Personne PRIMARY KEY(Nom, Adresse, N_Appartement, DateArrivee),
    CONSTRAINTS fk_Personne_Appart FOREIGN KEY(Adresse, N_Appartement) REFERENCES Pl_Appartement(Adresse, N_Appartement));

    ------------------------------------------
    -- Records of Pl_Personne --------
    ------------------------------------------
    INSERT INTO Pl_Personne VALUES('Dufour', 'Rue du parc - Lille', 1, TO_DATE('1996-07-04 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), NULL, NULL, 'Rentier');
    INSERT INTO Pl_Personne VALUES(NULL, 'Rue du parc - Lille', 2, NULL, NULL, NULL, NULL);
    INSERT INTO Pl_Personne VALUES(NULL, 'Rue du parc - Lille', 3, NULL, NULL, NULL, NULL);
    INSERT INTO Pl_Personne VALUES(NULL, 'Rue du parc - Lille', 4, NULL, NULL, NULL, NULL);
    INSERT INTO Pl_Personne VALUES(NULL, 'Rue du parc - Lille', 5, NULL, NULL, NULL, NULL);
    INSERT INTO Pl_Personne VALUES(NULL, 'Rue du parc - Lille', 6, NULL, NULL, NULL, NULL);


    ------------------------------------------
    -- Table structure for "Pl_Facture" ----
    ------------------------------------------
    CREATE TABLE Pl_Facture(
    Numero NUMBER(10),
    Nom VARCHAR2(50),
    Adresse VARCHAR2(50) NOT NULL,
    N_Appartement NUMBER(3) NOT NULL,
    DateFacture DATE,
    Montant NUMBER(9,2) NOT NULL,
    CONSTRAINTS pk_Facture PRIMARY KEY(Numero),
    CONSTRAINTS fk_Facture_Imm FOREIGN KEY(Adresse) REFERENCES pl_Immeuble(Adresse),
    CONSTRAINTS fk_Facture_Appart FOREIGN KEY(Adresse, N_Appartement) REFERENCES Pl_Appartement(Adresse, N_Appartement));

    ------------------------------------------
    -- Records of Pl_Facture -----------
    ------------------------------------------
    INSERT INTO Pl_Facture VALUES(1001, 'Dufour', 'Rue du parc - Lille', 1, TO_DATE('1996-07-04 00:00:00', 'YYYY-MM-DD HH24:MI:SS'), 165000);
    INSERT INTO Pl_Facture VALUES(1002, NULL, 'Rue du parc - Lille', 2, NULL, 0);
    INSERT INTO Pl_Facture VALUES(1003, NULL, 'Rue du parc - Lille', 3, NULL, 0);
    INSERT INTO Pl_Facture VALUES(1004, NULL, 'Rue du parc - Lille', 4, NULL, 0);
    INSERT INTO Pl_Facture VALUES(1005, NULL, 'Rue du parc - Lille', 5, NULL, 0);
    INSERT INTO Pl_Facture VALUES(1006, NULL, 'Rue du parc - Lille', 6, NULL, 0);
    Merci de votre aide.

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Dans PI_Immeuble le contenu de la zone adresse est
    Rue du parc - lille
    mais dans la table PI_FACTURE elle devienne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Rue du parc - Lille

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/05/2014, 15h05
  2. Violation de contrainte d'intégrité
    Par Farhat1985 dans le forum Oracle
    Réponses: 4
    Dernier message: 18/10/2012, 14h51
  3. ORA-02991 : violation de contrainte d'intégrité
    Par Dadoo1369 dans le forum Oracle
    Réponses: 2
    Dernier message: 10/03/2012, 17h09
  4. [debutant] Contraintes d'intégrité définies sur un objet
    Par maysa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/05/2004, 14h57
  5. Question sur les contraintes d'intégrités
    Par eGGyyS dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 27/04/2004, 13h51

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