查看: 29464|回复: 16

[SQL] 【大话IT】对oracle数据库的插入表进行更新到另一张表(涉及到其他表和存储过程)

[复制链接]
论坛徽章:
3
优秀写手
日期:2015-03-01 06:00:14慢羊羊
日期:2015-03-04 14:55:272015年新春福章
日期:2015-03-06 11:59:47
发表于 2015-3-1 12:44 | 显示全部楼层 |阅读模式
  对于插入表A,当表A有数据插入后,要将表A与其他表关联后的插入表B。表A到表B可以通过存储过程实现。现在的问题时,当表A有数据插入时,要自动触发存储过程。请问大家是否可以通过触发器来实现,或者有更好的方法。

论坛徽章:
1
茶鸡蛋
日期:2013-02-28 16:07:01
发表于 2015-3-1 13:24 | 显示全部楼层
当然可以实现了,在表A中建个触发器直接将A表与其它表关联的数据插入到B表中就可以了。

使用道具 举报

回复
论坛徽章:
3
优秀写手
日期:2015-03-01 06:00:14慢羊羊
日期:2015-03-04 14:55:272015年新春福章
日期:2015-03-06 11:59:47
 楼主| 发表于 2015-3-1 13:38 | 显示全部楼层
idea1861 发表于 2015-3-1 13:24
当然可以实现了,在表A中建个触发器直接将A表与其它表关联的数据插入到B表中就可以了。

那就不用去触发存储过程了。如果插入表的数量比较大,对性能的要求是不是很高;而且后期的维护会不会比较麻烦?

使用道具 举报

回复
论坛徽章:
737
发表于 2015-3-1 14:04 | 显示全部楼层
job     

使用道具 举报

回复
论坛徽章:
3
优秀写手
日期:2015-03-01 06:00:14慢羊羊
日期:2015-03-04 14:55:272015年新春福章
日期:2015-03-06 11:59:47
 楼主| 发表于 2015-3-1 14:23 | 显示全部楼层
oracle_cj 发表于 2015-3-1 14:04
job

job只能定时调度,不能在插入数据后触发

使用道具 举报

回复
论坛徽章:
142
秀才
日期:2016-01-06 14:01:09秀才
日期:2016-02-18 10:06:46秀才
日期:2016-02-18 10:08:02秀才
日期:2016-02-18 10:08:14秀才
日期:2016-03-01 09:57:08天蝎座
日期:2016-03-18 14:23:56秀才
日期:2016-03-24 09:10:24秀才
日期:2016-03-24 09:20:52秀才
日期:2016-04-21 14:08:53秀才
日期:2016-04-21 14:11:59
发表于 2015-3-2 08:46 | 显示全部楼层
触发器+存储过程
CJ意思是触发器里提交一次性JOB来后台执行存储过程

使用道具 举报

回复
认证徽章
论坛徽章:
40
2014年新春福章
日期:2014-02-18 16:43:09喜羊羊
日期:2015-05-18 16:24:25慢羊羊
日期:2015-06-12 13:08:22暖羊羊
日期:2015-07-02 16:06:20暖羊羊
日期:2015-07-06 16:28:55狮子座
日期:2015-07-29 17:14:43摩羯座
日期:2015-09-02 13:58:47白羊座
日期:2015-09-08 10:39:06天枰座
日期:2015-09-17 21:41:53摩羯座
日期:2015-10-29 21:07:02
发表于 2015-3-2 10:10 | 显示全部楼层
CitaLin 发表于 2015-3-1 13:38
那就不用去触发存储过程了。如果插入表的数量比较大,对性能的要求是不是很高;而且后期的维护会不会比较 ...

从性能角度考虑:个人感觉触发器能少用还是少用。如果一定要用,尽量用after触发器,慎用 for each row触发器。

或者这样说,这种逻辑最好由上层业务来处理。

使用道具 举报

回复
论坛徽章:
3
优秀写手
日期:2015-03-01 06:00:14慢羊羊
日期:2015-03-04 14:55:272015年新春福章
日期:2015-03-06 11:59:47
 楼主| 发表于 2015-3-2 10:16 | 显示全部楼层
bfc99 发表于 2015-3-2 10:10
从性能角度考虑:个人感觉触发器能少用还是少用。如果一定要用,尽量用after触发器,慎用 for each row触 ...

我很赞同你的观点,有时做开发的也是很无奈。很谢谢你的建议。

使用道具 举报

回复
论坛徽章:
737
发表于 2015-3-2 15:49 | 显示全部楼层
你搞个job去监控那张表的数据,一有数据就调存储过程,没有数据就死循环监控,可能会用到dbms_lock包,这样可以避开触发器使用

使用道具 举报

回复
认证徽章
论坛徽章:
0
发表于 2015-3-2 16:26 | 显示全部楼层
是否可以从设计的角度进行修改?
按照LZ的需求,我猜想是不是用应用在实时查询B表的数据,如果是话是否可以做一个基于A和其他表的关联后的结果的物化视图。这样可以实时 得到最新的数据。然后在写一个过程,建一个每天跑的job,每天将视图的最新的数据插入到B表。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

大数据时代数据库架构演进与实践技术沙龙-北京

活动介绍:
在这个“数据”爆炸的时代,海量数据的处理能力已经成了考量数据库重要的因素之一,通过分布式数据库来扩展信息系统的处理能力,已成为近年来的一种普遍选择。本次沙龙我们邀请了国内外一线技术专家就“大数据时代数据库架构演进与实践”来为大家做分享,谈谈在数据量呈现指数级增长的大数据时代,企业数据库架构所面临的挑战及演进的思考!
主题:大数据时代数据库架构演进与实践
时间:2019年3月30日 9:30-12:15
地点:机械骑士咖啡书店(海淀区中关村大街15-11创业公社中关村国际创客中心B1层,地铁中关村站E口出)

免费报名通道>>
TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 
京ICP备09055130号-4  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表