Bonjour,
Dans mon trigger sur INSERT j'exécute une mule
le problème vient évidemment des boucles en plus sur des tables temporaires (une mise à jour fera en sorte de plus être sur des tables temporaires mais le code restera le même avec des boucles...)
Que fait le Trigger ?
Lors d'un ajout de règle, il recherche les règles qui peuvent être impactées car la table qui exécute le trigger contient des règles permettant de générer un planning. Il doit garder la cohérence et l'intégrité de ces règles (insert,update,delete)
chaque ligne de la table qui contient les règles contient une machine, une station, des plannings (et sous plannings), un calendrier, un lieu (et des sous lieux), un programme (ensemble de machine) et un programme a des sous programmes... Il ne peut pas avoir dans une règle une machine et un programme de renseignés en même temps
si un champ contient null alors ça veut dire que c'est pour tout :
si calendrier est null alors la règle devra générer le suivi pour tout les calendriers
le suivi est générer que si lors de la recherche des règles impactées il y a assez de données pour pouvoir être générée
MACHINE PROGRAMME LIEU PLANNING STATION CALENDRIER
null 2 5 2 null null <- dans la table
null null 8 null 3 null <- dans la table
null null 20 40 null null
2 1 <- règle ajoutée
le programme 2 inclut la machine 2
le lieu 5 inclut 8 et 8 est plus précis
ma règle final sera donc
MACHINE PROGRAMME LIEU PLANNING STATION CALENDRIER
2 null 8 2 3 1 <- regle valide
2 null 20 40 null 1<- regle non valide on a pas trouvé de station...
Après on va récuperer les valeurs les plus précises de mes lieux (les feuilles de mon arbre), idem pour planning et générer plusieurs lignes
(qui va créer x lignes dans une autre table)
Bien sur il y a d'autre propriété comme les dates etc... mais si vous voyez comment je peux éviter les boucles dans mon trigger
votre aide sera énorme pour moi sachant que je dois rendre la chose dans pas longtemps.
Merci votre aide
Partager