Bonjour,
Je possède une base de données Oracle 11g Xe avec les 2 tables suivantes :
tb_mesure (#id_mes, fin_theo_mes,…)
tb_decision (#id_deci, mes_id (clé étrangère), date_debut_deci, date_fin_deci,…)
Une mesure possède 0 ou n décisions, et une décision concerne 1 et 1 seule mesure.
Je souhaiterais avoir un trigger sur la table tb_decision qui effectue la chose suivante :
Lorsque l’on ajoute pour la première fois une décision qui concerne la mesure #100 (mes_id = 100, par exemple), le champ date_fin_deci de la table tb_decision prenne automatiquement la valeur fin_theo_mes de la table tb_mesure.
J’ai donc tenté de créer le trigger suivant :
Mais mon trigger ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CREATE or REPLACE TRIGGER tr_decisions_dates BEFORE INSERT ON TB_DECISION FOR EACH ROW DECLARE v_fin_mes DATE; BEGIN SELECT fin_theo_mes INTO v_fin_mes FROM tb_mesure, tb_decision WHERE :new.mes_id = id_mes; :new.date_fin_deci := v_fin_mes; END;
Quelqu'un pourrait-il me conseiller et me dire si je suis dans la bonne direction pour réaliser ce que je souhaite ?
Merci d'avance pour vos réponses.
Partager