Php/mysql Trigger

Résolu/Fermé
ChrisK38 Messages postés 2 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 15 août 2008 - 17 janv. 2008 à 21:08
adilol Messages postés 14 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 13 décembre 2009 - 17 avril 2008 à 07:08
Bonjour,
J'ai un probleme avec l'execution du trigger sur la gestion des stocks des equipement. Normalement ,apres l'insertion d'une ligne dans la table posseder le trigger doit se declencher pour diminuer l'etat du stock correspondant au libelle. Mais mon insertion ne s'effectue pas a cause du trigger.
Je joins le code du trigger et les tables correspondante.
Merci d'avance.


Create Table EPI
( num_epi int(11)auto_increment ,
Libelle varchar(20) not null ,
StockActu int(2) not null ,
StockAL int(2) not null ,
Primary key (num_epi)
);


create table posseder
( Num_sal int(11) not null ,
num_epi int(11) not null ,
taille varchar(2) not null ,
dateremise date not null ,
observation varchar(50) not null default '',
primary key (num_sal,num_epi,dateremise,taille),
foreign key (num_sal) references salaries(num_sal),
foreign key (num_epi) references epi(num_epi)
);


create trigger Gestion_stock
after insert on posseder
for each row
BEGIN
IF (select EPI.StockActu from EPI,posseder where Posseder.num_epi = EPI.num_epi) != null then

update EPI SET EPI.StockActu = ( EPI.StockActu - 1) where posseder.num_epi = EPI.num_epi;
END IF;

END//

2 réponses

Essais :
create trigger Gestion_stock
after insert on posseder
for each row
BEGIN
IF (select EPI.StockActu from EPI where NEW.num_epi = EPI.num_epi) != null then

update EPI SET EPI.StockActu = ( EPI.StockActu - 1) where NEW.num_epi = EPI.num_epi;
END IF;
1
adilol Messages postés 14 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 13 décembre 2009 1
17 avril 2008 à 07:08
salut tt le monde,

svp,j ai un probleme urgent,je voulais ecrire un trigger qui fait ca:

- si la date de la commande est moins que 3 jour de la date de livraison,il doit afficher un message d erreur.

voici en bas, en detail ce qu il doit faire le trigger



Pour une commande standard (achat d’un bouquet standard), la cyberboutique
garantit la disponibilité en inventaire des items composant le
bouquet seulement si la commande a été passée au moins 3 jours avant la
date de livraison. Pour les commandes standards effectuées moins de 3
jours avant la date de livraison, c’est le client qui assume le risque. Il est
donc très important d’informer ces clients d’une éventuelle pénurie. L’état
de la commande sera alors « VINV »
-1