bonjour à tous et à toutes,
Voilà j'ai 2 tables sous Oracle : Personne et Presente, je voudrais automatiser un champ appelé NB_EMIS qui compte le nombre d'émission présentées par une personne, pour ceçi j'ai écrit ce triger dans la table Personne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
Create or replace Trigger "Enr_Personne"
before insert on Personne
for each row
declare
wnb_emission number(2);
begin
select count(*) into wnb_emission from Presente where Presente.codpers=:new.codpers;
Update Personne set Nb_Emis=wnb_emission where personne.codpers=:new.codpers;
end;
Le problème est que la valeur new.codpers n'est pas connue quand je suis en insertion et la mise à jour ne se fait pas correctement, j'ai essayé plusieurs solutions en positionnant par exemple ce trigger sur l'évènement "After Update" ou "Before update" cela ne marche pas non plus.
J'ai pensé à faire 2 triggers :
1 - avant insertion pour compter le nombre d'emissions
et l'autre avant mise à jour mais je ne sais pas comment faire...
Si quelqu'un a une idée merçi