aide pour premier trigger
bonjour,
me voici avec mon premier trigger. Donc j'ai une table itemavendre avec un champ estVenteExterne (0 ou 1), et enVente (0,1,2,3);
Je veux qu'a chaque changement du champ enVente dans ma table itemavendre ET uniquement les lignes qui sont à estVenteExterne=1, faire soit une insertion, soit un update dans la table partenaireMajStock (update si ligne déjà créée).
itemavendre(numItemAVendre,enVente,prix,estVenteExterne)
partenaireMajStock(numPartenaire,numItemAVendre,dateCreation,dateTransmission).
je pense insérer numPartenaire via un paramètre, mais pas sur que c'est possible avec un trigger....
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| CREATE TRIGGER `insertMouvementStockApresInsert` AFTER INSERT ON `itemavendre`
FOR EACH ROW
BEGIN
DECLARE _numPartenaire INT;
# on ne fait des modif que sur changement de l etat de vente
IF (NEW.estVenteExterne==2)
THEN
/*on regarde si il existe si oui update si non create*/
SELECT numPartenaire INTO @numPartenaire
FROM partenairesMajStock
WHERE numPartenaire = _numPartenaire
AND numItemAVendre=NEW.numItemAVendre;
IF @numPartenaire!=null
THEN
UPDATE partenairesMajStock
SET enVente=_enVente,dateCreation=now()
WHERE numItemAVendre = NEW.numItemAVendre
ELSE
INSERT INTO partenairesMajStock (numPartenaire,numItemAvendre,dateCreation,dateTransmission) VALUES(numPartenaire,NEW.numItemAVendre,now(),null)
END IF;
END; |
est ce que c'est correct ? (je ne peux pas tester pour l'instant, je veux juste savoir si la syntaxe est ok)
Merci