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


Автор: KaKTyCc 7.6.2006, 15:31
есть таблица month  в ней список месяцев 
есть таблица students

при вставке в таблицу  students новой записи, необходимо делать 

Код

select month into ... from month
insert into journal_visit  values (id_journal_visit.nextval, :New.id_student, month, 0, 0);


Как мне в цикле организовать, чтобы для всех месяцев добавлялись записи 

Автор: skyboy 7.6.2006, 15:42
KaKTyCc, а словами пояснить - низзя? 

Автор: KaKTyCc 7.6.2006, 15:47
словами, это для нового студента генерация журнала посещаемости на все месяцы 

Автор: denislpopov 7.6.2006, 15:53
Код

insert into journal_visit  
select id_journal_visit.nextval, :New.id_student, month, 0, 0
from month;
 

Автор: skyboy 7.6.2006, 15:56
KaKTyCc, И? Что надо сделать с этим журналом? зачем триггер - неясно. Имеется таблица - список месяцев. Имеется журнал, куда надо вставить инфо о студенте. Что за инфо? Update'ом тут точно не обойтись? Как-то странно - студента добавили и сгенерировали записи с 0... Он же в то время не числился, так? Поясни цель. Зачем что-то генерировать? 

Автор: KaKTyCc 7.6.2006, 16:05
поясняю, при добавлении НОВОГО студента для него нужно создать журнал посещаемости

создается он вот так 

Код

insert into journal_visit  values (id_journal_visit.nextval, :New.id_student, 'Сентябрь', 0, 0);
insert into journal_visit  values (id_journal_visit.nextval, :New.id_student, 'Октябрь', 0, 0);
......


где id_student - ID только что добавленного в таблицу students студента
а 0 потому что он только поступил, и не успел еще пива попить в парке во время лекций

Добавлено @ 16:11 
denislpopov,  СПАСИБО

Добавлено @ 16:14 
Код

CREATE OR REPLACE TRIGGER T_GENJOURNALVISIT
AFTER INSERT
ON METODIST.STUDENTS
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
DECLARE

BEGIN
 insert into journal_visit select id_journal_visit.nextval, :New.id_student, month, 0, 0 from month;
   
END t_genjournalvisit;
 

Автор: skyboy 7.6.2006, 16:17
А если студент перешёл во время зимней сессии? Ты будешь создавать на него записи в журнале на сентябрь-декабрь? Зачем это? ты в базу "журнал посещаемости" каждый день пишешь? или раз в месяц?

Добавлено @ 16:18 
впрочем, если решение было найдено, то чего ещё мне надо? smile 

Автор: KaKTyCc 7.6.2006, 16:19
куда перешел? раз в месяц пишутся данные 

Автор: skyboy 7.6.2006, 16:27
Цитата(KaKTyCc @  7.6.2006,  16:05 Найти цитируемый пост)
 он только поступил, и не успел еще пива попить в парке во время лекций

- поступают в начале года. А в зимнюю сессию можно перейти в/из группы, соотвественно надо корректировать журнал. Но не создавать же на студента, перешедшего в группу, записи в журнале, которые никогда уже не изменятся с "0" на какое-нить число. Я тебя правильно понял - ты моделируешь журнал посещаемости в ВУЗе? 

Автор: KaKTyCc 7.6.2006, 16:58
зачем корректировать, в таблице journal_visit только id студента, перевод из группы в группу не влияет на него 

Автор: KaKTyCc 7.6.2006, 23:08
denislpopov,  У меня недостаточно постов, чтобы изменять репутацию пользователей. Необходимо 100 постов   smile  

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