Partage
  • Partager sur Facebook
  • Partager sur Twitter

pb heritage clé etrangere

    14 juin 2010 à 19:58:01

    Bonjour j'ai un petit problème lors d'une insertion voici la partie du mld correspondant:
    CREATE TABLE ligne_commande (num_commande int,
    				num_ligne int ,
    				qte_com int NOT NULL,
    				prix_unitaire_ht int NOT NULL,
    				num_type int NOT NULL,
    				num_taille int NOT NULL,
    				CONSTRAINT pk_ligne_commande PRIMARY KEY (num_commande,num_ligne),
    				CONSTRAINT fk_taille2 FOREIGN KEY (num_taille,num_type) REFERENCES vendre(num_taille,num_type),
    				CONSTRAINT fk_num_commande FOREIGN KEY (num_commande) REFERENCES commande(num_commande));
    
    CREATE TABLE reglement (num_reglement int, CONSTRAINT pk_reg PRIMARY KEY (num_reglement));
    
    CREATE TABLE cheque (num_cheque int unique NOT NULL, 
    			CONSTRAINT pk_cheque PRIMARY KEY(num_reglement)) 
    			INHERITS(reglement);
    
    
    CREATE TABLE carte (bin int UNIQUE NOT NULL,
    			nom_titulaire varchar(25) NOT NULL,
    			date_exp varchar(5) NOT NULL,
    			cvv INT NOT NULL,
    			CONSTRAINT pk_carte PRIMARY KEY(num_reglement))
    			INHERITS(reglement);
    
    CREATE TABLE commande (num_commande int,
    			lieu_liv varchar(25) NOT NULL,
    			ladate date NOT NULL, 
    			num_client int NOT NULL,
    			num_reglement int NOT NULL,
    			CONSTRAINT pk_commande PRIMARY KEY (num_commande),
    			CONSTRAINT fk_commande_client FOREIGN KEY (num_client) REFERENCES client(num_client),
    			CONSTRAINT fk_commande_reglement FOREIGN KEY (num_reglement) REFERENCES reglement(num_reglement));
    


    Lors de l'insertion suivante :
    insert into commande(num_commande,lieu_liv,ladate,num_client,num_reglement) values(1,'Poitiers','2010-05-01',1,1);
    


    un message me dit que "num_reglement=" de la table "reglement" n'existe pas.Ce qui est normal
    puisque je n'insère rien dans "reglement" mais dans "carte" et "cheque" qui hérite de règlement.

    Bien sur les insertions dans les autres tables sont faites.

    voici le mcd :

    <image></image>
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      14 juin 2010 à 20:13:56

      Citation : romaindu86


      un message me dit que "num_reglement=" de la table "reglement" n'existe pas.Ce qui est normal
      puisque je n'insère rien dans "reglement" mais dans "carte" et "cheque" qui hérite de règlement.


      L'ordre INSERT que tu nous montre concerne la table commande, pas carte ni cheque.

      Quel est ton SGBDR ?

      Citation : romaindu86


      voici le mcd :

      <image></image>


      On ne voit pas l'image.
      • Partager sur Facebook
      • Partager sur Twitter
        14 juin 2010 à 20:16:39

        oui elle concerne commande car le problème c'est que lorsque j'insere une commande il e faut entrer la clé etrzangere "num_reglement" mais "num-reglement" est dans reglement et on insere pas de reglement mais un reglment par carte ou cheque.

        sgbdr: postgres sous windows

        ps : je ne sait pas comment mettre l'image
        • Partager sur Facebook
        • Partager sur Twitter

        pb heritage clé etrangere

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown