Bonjour ,
tout d'abord je vous presente le mld de ma base de données qui gere une agence de voyages
1 2 3 4 5
|
Station(nomStation, capacité, lieu, région, tarif)
Activité(nomStation,libellé, prix)
Client(id, nom, prénom, ville, région, solde)
Sejour(id, station, début, nbPlaces) |
j'utilise postgresql je voudrais gérer certaines contraintes:
- Le prix d'une activité doit être inférieur au tarif de la station et supérieur à 0
- Pour une date de début donnée, le nombre total de places réservées dans une station doit être inférieur à la capacité de la station.
pour l'instant je n'ai testé que la première . jusqu'à maintenant je n'ai géré que des contraintes simples du style que les valeurs d'un champ soient comprises entre les valeurs d'une liste...
pour cette requete j'avais pensé à gérer ca comme:
alter table activite add constraint prix check (prix <(select tarif from station) and prix>0);
mais j'ai eu comme erreur comme quoi qu'on ne peut pas avoir de sous requete dans une contrainte.
donc apres j'ai testé
alter table activite add constraint prix check (prix <station.tarif and prix>0);
etant donne que nomstation est une clé etrangere mais ca n'a pas fonctionné j'ai eu comme erreur
1 2
| NOTICE: Ajout d'une entrée manquante dans FROM (table «station»)
ERREUR: La contrainte de vérification pourrait seulement référencer la relation «activite» |
. pourriez vous m'aider s'il vous plait
[Modération : Mise en page revue par LeoAnderson]
Partager