从来没有写过触发器,然后毕设需要,不知道写对了没,这是我建的表,要完成的功能是,当插入数据时,执行这个触发器,即循环插入数据,其中curr_time字段是时间类型,并且按照createdby1自增长方式增加,其中week_num字段从1一直循环到总共周数(count_week)
create table F_FT_TIME (
ROW_ID NUMBER(18) not null,
CURR_TIME DATE,
START_DATE DATE,
STOP_DATE DATE,
START_YEAR VARCHAR2(4),
STOP_YEAR VARCHAR2(4),
START_MON VARCHAR2(2),
STOP_MON VARCHAR2(2),
COUNT_WEEK CHAR(10),
WEEK_NUM VARCHAR2(2),
WEEK VARCHAR2(1),
LESSON VARCHAR2(2),
START_TIME DATE,
STOP_TIME DATE,
COURSE_ID NUMBER(18),
constraint PK_F_FT_TIME primary key (ROW_ID)
)
下面是我写的触发器
create trigger biufer_F_FT_TIME
after insert
on F_FT_TIME
referencing old as old_value
new as new_value
declare
i number;
k number;
j number;
begin
for i in new_value.count_week loop
for k in 7 loop
for j in 13 loop
insert into F_FT_TIME(
curr_time,
start_date,
stop_date,
start_year,
stop_year,
start_mon,
stop_mon,
count_week,
week_num,
week,
lesson
) values(
new_value.curr_time+(interval createby1.nextval day),
new_value.start_date,
new_value.stop_date,
new_value.start_year,
new_value.stop_year,
new_value.start_mon,
new_value.stop_mon,
new_value.count_week,
i,
k,
j
);
end loop;
end loop;
end loop;
end;