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

PostgreSQL Discussion :

[Héritage] problème intégrité référentielle


Sujet :

PostgreSQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 120
    Points : 124
    Points
    124
    Par défaut [Héritage] problème intégrité référentielle
    Bonjour,

    J'ai une table produits ainsi que deux autres tables héritant de produits :
    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
    CREATE TABLE PRODUITS (
        idProduit serial NOT NULL,
        nom character varying(100) NOT NULL,
        description character varying(255),
        annee integer,
        prixvente real NOT NULL,
        PRIMARY KEY (idVO),
        UNIQUE (idVO)
    );
     
    CREATE TABLE DVD (
        collection character varying(50),
        producteur character varying(50)
    ) INHERITS (produits);
     
    CREATE TABLE POSSEDER
    (
        idProduit int4 NOT NULL REFERENCES PRODUITS ON UPDATE CASCADE ON DELETE RESTRICT,
        qte int4 NOT NULL,
        prix real NOT NULL
      PRIMARY KEY (idProduit)
    );
    Mon problème est que je peux insérér une nouvelle entrée dans ma table posseder si idProduit est un id de la table mère mais
    ça marche pas quand c'est celui d'une des table fille,
    PostGreSQL me marque :
    ERROR: insert or update on table "posseder" violates foreign key constraint "posseder_idproduit_fkey"
    DETAIL: Key (idvo)=(2) is not present in table "produits".
    Comment est-ce que je peux régler ce problème ?

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    malheureusement, il n'y a pas grand chose à faire, comme l'indique la doc :
    Une limitation sérieuse de la fonctionnalité d'héritage est que les index (incluant les contraintes uniques) et les contraintes de clés étrangères s'appliquent seulement à des tables seules, pas à leurs héritiers. Ceci est vrai pour le côté de référence et le côté référencé d'une contrainte de clé étrangère.[...]
    Ces déficiences seront probablement corrigées dans une version future mais en attendant, un soucis considérable est nécessaire dans la décision de l'utilité de l'héritage pour votre problème.
    Personnellement, je n'ai pu utiliser l'héritage que dans les cas restreints où je n'avais pas la nécessité d'avoir une clé étrangère pointant vers la table ancètre. Dans le cas contraire, c'est NO WAY...
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 120
    Points : 124
    Points
    124
    Par défaut
    Merci pour ta réponse.

    Je ne vois pas trop comment je peux faire pour trouver un équivalent à ma table possèder, à part de créer des références vers chacune des tables des différentes catégories ou alors créer une table posséder pour chaque table de catégorie

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 22/03/2012, 09h50
  2. Problème intégrité référentielle
    Par cyril53 dans le forum Développement
    Réponses: 2
    Dernier message: 20/05/2011, 10h41
  3. Problème d'intégrité référentielles
    Par Fonzy007 dans le forum Requêtes
    Réponses: 4
    Dernier message: 21/08/2006, 11h38
  4. Problème d'intégrité référentielle
    Par guiguikawa dans le forum Access
    Réponses: 15
    Dernier message: 23/05/2006, 15h25
  5. Réponses: 5
    Dernier message: 26/10/2005, 14h43

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