Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/05/2005, 17h43   #1
Invité régulier
 
Inscription : mai 2005
Messages : 20
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 20
Points : 6
Points : 6
Par défaut Probleme heritage : References sur la table parente

Bonjour,


J'ai un probleme avec une table (Ex : MEMOIRE) qui possende une clef secondaire (references) qui pointe sur un attibut d'une table parente (Ex : EQUIPEMENT_RESEAU) dans un heritage.
Je ne rempli jamais cette table parente (EQUIPEMENT_RESEAU), je ne rempli que les tables filles (Ex : ORDINATEUR, ...).


Je ne parviens pas à remplir la table (MEMOIRE), j'ai une erreur sur la clef secondaire (qui pointe sur la clef primaire de la table parente (EQUIPEMENT_RESEAU).
l'erreur est la suivante (en JDBC):
ERROR: insert or update on table "Memoire" violates foreign key constraint "Memoire_Equipement_fkey"

est ce parceque ma table parente est physquement vide ? pgSQL ne va pas chercher dans les tables filles ?




Extrait de ma base :

// TABLE PARENTE //
CREATE TABLE "EquipementReseau" (
"AdrIp" varchar PRIMARY KEY,
( ...autres attributs ... )
);


// TABLE FILLE 1//
CREATE TABLE "Ordinateur" (
(... autres attributs ...)
) INHERITS ("EquipementReseau");

// TABLE FILLE 2//
CREATE TABLE "Copieur" (
(... autres attributs ...)
) INHERITS ("EquipementReseau");



// TABLE AVEC UNE FK SUR TABLE PARENTE //
CREATE TABLE "Memoire" (
"IpEquipement" varchar REFERENCES "EquipementReseau"("AdrIp") ON DELETE CASCADE,
(... autres attributs ...)
);


Un gros merci à celui qui trouve la solution.
merci quand même à ceux qui cherchent sans trouver
Belgar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2005, 09h33   #2
Membre éclairé
 
Inscription : janvier 2005
Messages : 336
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : janvier 2005
Messages : 336
Points : 353
Points : 353
Lut

Citation:
est ce parceque ma table parente est physquement vide ? pgSQL ne va pas chercher dans les tables filles ?
La Foreign Key dans une table doit correspondre physiquement à la Primary Key de la table associée, ton si tu INSERT dans ta table fille, un enregistrement et que la Primary Key de la table parente n'existe pas, tu lève l'erreur que tu nous a cité.

KrysKool
kryskool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2005, 21h32   #3
Invité régulier
 
Inscription : mai 2005
Messages : 20
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 20
Points : 6
Points : 6
Ok, merci de la reponse

Donc, il n'est pas possible de faire une FK sur une table qui est parente d'un ou plusieurs heritages, puisque les données ne seront pas forcement physiquement sur cette table ...

Dommage que les heritages ne soient pas ausi bien gerés qu'en Java, un jours peut-être ...

Bon, je vire l'heritage
Belgar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2005, 22h11   #4
Invité régulier
 
Inscription : mai 2005
Messages : 20
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 20
Points : 6
Points : 6
Apres reflexion et pour faire propre, je vas essayer d'utiliser les triggers pour copier les tables filles dans la table parente. just pour voir
Belgar est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h26.


 
 
 
 
Partenaires

Hébergement Web