Php/Mysql Probleme Trigger

Signaler
Messages postés
1
Date d'inscription
lundi 9 juillet 2007
Statut
Membre
Dernière intervention
18 janvier 2008
-
Messages postés
416
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
19 décembre 2013
-
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//

Configuration: Windows XP
Firefox 2.0.0.11

1 réponse

Messages postés
416
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
19 décembre 2013
2
Salut,
Je pense que tu veux en fait a chaque insertion d'un item dans la table posseder , tu veux decrementer le stock associe (pas tout au complet) .
Dans ce cas corriges le Posseder.num_epi pour posseder.num_epi , et utilise le mot cle NEW ki fait reference a la nouvelle ligne inseree.
maintenant pourque ton trigger puisse etre valide, assure toi d'avoir les privileges necessaires ( SUPER ) , sinon passe par une procedure stockee
je suis heureux de faire partie d'une grande famille ...!