表A 和 表B,表B的外键是表A的主键。两个表存在一对多的关系。
现在:
当更新表A,并且表A的字段 colum1 的值为1的时候,执行以下操作:
1、为表B插入12条数据
2、表B的主键自增。
3、表B的外键是刚插入的表A的主键值。
例如:
表A有三个字段(id,year,status)
表B有三个字段(id,year,month,color)
当执行
update A set year = '2013' and status = '1' where id = '0001'
这条语句的时候触发以下SQL语句
inset into B vaalues(1,2,3,4)
1:id的值实现自增。
2:year 等于刚才的update语句的year字段的值。
3:month = 从1-12这个12个月(就是说要一次增加12条记录,前面id和year不变,month=从1到12)
4:随便写。
请问这样的触发器该怎么写。
oracle触发器的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答
- ∫Ag 2013-03-20 18:42关注
已经解决,速度给分 :P
create or replace trigger tr_zhangyi
after update on table_a for each row
--只有在修改之后才触发
declare
i number;
BEGIN
if :new.status = '1' and :new.id = '0001' and :new.year = '2013' then
for i in 1 .. 12 loop
--月份只有12个月,故可以用循环
insert into table_b
(id, year, month, color)
values
(seq_tab_b.nextval, :new.year, i, 'abcd');--序列是从1开头的,但是B表的ID字段需要是0001开头,故需要对ID进行处理 -- update table_b end loop;
end if;
END;本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 arduino控制ps2手柄一直报错
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥85 maple软件,solve求反函数,出现rootof怎么办?
- ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥65 汇编语言除法溢出问题
- ¥15 Visual Studio问题
- ¥20 求一个html代码,有偿
- ¥100 关于使用MATLAB中copularnd函数的问题