|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Membre régulier
![]() Inscription : août 2005 Messages : 346 ![]() |
Bonjour,
J'ai une BDD contenant 2 tables: Chantiers et Demandes. J'ai besoin d'assurer une intégrité référentielle entre les chantiers liés à une demande d'un client. Seulement, il peut y avoir plusieurs chantiers liés à une demande. Voici les champs des tables: Demandes: identifiant (clé primaire, numerique), client Chantiers: identifiant (clé primaire), demande (numerique) Je pensais créer une clé étrangère dans la table Demandes entre les champs identifiant (Demandes) et demande (Chantiers). Avec "on delete cascade, on update cascade" (si on supprime une demande, ca supprime les chantiers liés). L'erreur retournée à la création de la contrainte est la suivante: Erreur dans PgSQL lors de la creation de contrainte de clé étrangère: Citation:
Ma question est: ai-je une alternative pour mettre en place une telle relation d'intégrité ? Je travaillais auparavant sous Access, j'ai récupéré toutes mes tables, et j'esperais pouvoir recréer mes anciennes relations dans pgSQL... Merci d'avance pour toute aide. Bonne journée |
|
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Inscription : août 2005 Messages : 346 ![]() |
Pas de réponse... entre temps j'ai cherché davantage de posts sur ce sujet.
Peut-être le concept des clé étrangère est-il un peu flou dans ma tête. Voici donc ce que je veux faire exactement, ma question est: comment le faire avec les contraintes de clé étrangère? J'ai mes 2 tables Demandes (identifiant, client) et Chantiers (identifiant, #demande). Tout chantier doit être lié à une demande (le champ demande d'un chantier doit correspondre à l'identifiant d'une demande). Il peut y avoir plusieurs chantiers pour une même demande. Je veux que la suppression d'une demande entraîne la suppression automatique de tous les chantiers liés. Si on modifie l'identifiant d'une demande, le champ "demande" de la table des chantiers lié doit être mis à jour avec le nouvel identifiant de la demande (CASCADE). Par contre, si on supprime ou modifie un chantier, il ne doit y avoir aucune conséquence sur la demande (NO ACTION). Je pensais qu'il faudrait 2 contraintes de clé étrangères (1 dans chacune des 2 tables). Peut-être que je me trompe ? Comment établir mon intégrité référentielle dans la base ? En espérant avoir un peu d'aide, merci déjà de m'avoir lu... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com