Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > после update обнулить кое что


Автор: KaKTyCc 15.6.2006, 16:51
Код

CREATE OR REPLACE TRIGGER METODIST.T_REFRESHJOURNALVISIT
AFTER UPDATE
OF SEMESTR
ON METODIST.GROUPS
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE

BEGIN
  
--проверить нечетный новый семестр или нет, если да то

 then
   
   update metodist.journal_visit set count_valid = 0,  count_notvalid = 0 
   where id_student in
   (select s.id_student from metodist.students s, metodist.groups g where s.status = 0 and s.id_group=g.id_group
   and g.group_name = :Old.group_name);
end if;

END t_refreshjournalvisit;


как проверку правильно сделать и udate, у меня ругается на мутацию группы  smile 
ORA-04091: table METODIST.GROUPS is mutating, trigger/function may not see it ORA-06512: at "METODIST.T_REFRESHJOURNALVISIT", line 10  

Автор: KaKTyCc 15.6.2006, 18:36
Код

 update metodist.journal_visit set count_valid = 0,  count_notvalid = 0 
   where id_student in
   (select s.id_student from metodist.students s where s.status = 0 and s.id_group=:old.id_group);


так все работает :-) 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)