|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Candidat au titre de Membre du Club
![]() |
Bonjour ,
tout d'abord je vous presente le mld de ma base de données qui gere une agence de voyages Code :
. 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: Code :
donc apres j'ai testé Code :
Code :
Code :
CREATE TRIGGER ins_sum BEFORE INSERT ON activite referencing new AS prix (when prix < (SELECT tarif FROM station WHERE station.nomstation=activite.nomstation) FOR each row); |
||||||||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : janvier 2005 Messages : 336 ![]() |
Bonsoir
Dans le cas que tu souhaite gérer, je te propose d'utilisé les transactions avec une procedure stockées ou des fonctions, par contre tu peut mettre une contrainte si prix supérieur a 0. KrysKool. |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() |
humm et la syntaxe du trigger elle n'est pas bonne?
|
|
|
00
|
|
|
#4 | ||
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
Bonjour,
je me suis penché sur la 2eme demande, et j'ai peut etre une solution : Procedure stockée + check Code :
Code :
CONSTRAINT "sejour_check0" CHECK (check_ladate(debut, (station)::text, (nbplace)::integer) = false) pour la premier demande base toi sur cet exemple N'hesite pas à demander si tu n'a pas compris (c'est un peu brouillon je sais ) |
||
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() |
ok merci je vais tester et plancher sur l'autre
|
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() |
humm bon ca me met plein d'erreurs plus j'en retire plus yen a
mais bon merci qd mm pour votre aide |
|
|
00
|
|
|
#7 |
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
Des erreurs lesquelles ? j'ai testé le code, il ne plante pas, il fonctionne, lorsque j'insere des valeurs il me bloque bien quand la valeur trop grande, mais c'est peut etre un probleme d'analyse de ma part.
|
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() |
des erreurs de syntaxe au niveau de date mais je pense pas que ca soit la date qui pose probleme. quelle version de postgresql tu utilises? moi j'utilise la 7.4
|
|
|
00
|
|
|
#9 | ||
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
J'utilise Pg 8
essaye ca Code :
|
||
|
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() |
ok je vais tester merci
|
|
|
00
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() |
ca fonctionne effectivement la fonction puis la contrainte j'ai fait aussi pour la contrainte concernant le prix .
Merci beaucoup hpalpha pour ta patience et ton aide |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com