存储过程和触发器,我该用哪一个????

萬里無雲 2009-07-31 04:22:34
想在运行表每条数据删除的时候插入历史表

是在运行表中做删除触发器好?

还是在程序中调用存储过程好?

同时有10个表 历史表中数据量较大 运行表的数据量较小

数据量大 并发执行的高

...全文
95 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
萬里無雲 2009-08-03
  • 打赏
  • 举报
回复
谢谢大家的回复,结贴了
majy 2009-07-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 liyun919 的回复:]
理由都过于牵强。
[/Quote]

请说个不寄强的。

我再加个理由,如果不用存储过程,一旦你数据insert到历史表不成功,新表的数据在trigger中是无法回滚的,这样,你的历史表就会少一条数据了。
Richard345265669 2009-07-31
  • 打赏
  • 举报
回复
都试一下吧,哪个出问题少就最终用哪个吧,呵呵
萬里無雲 2009-07-31
  • 打赏
  • 举报
回复
理由都过于牵强。
zhangwonderful 2009-07-31
  • 打赏
  • 举报
回复
一般不建议用触发器,尤其大量用户服务并发时容易出问题。用存储过程实现,删除前调用此存储过程实现插入历史表。
csuxp2008 2009-07-31
  • 打赏
  • 举报
回复
楼上说的挺有道理
majy 2009-07-31
  • 打赏
  • 举报
回复
强烈建议不要用trigger:

这个东西往往是你做的人知道有这个东西存在,维护人的往往不清楚有这个业务逻辑,有时候为了维护什么的,删除表再重建一下表的之后,这个事情可能就被忘了,那麻烦就大了,而写在自己的程序逻辑里就不会,谁看程序的时候都是一目了然

同时,trigger的并发性性能不是很好。
inthirties 2009-07-31
  • 打赏
  • 举报
回复
用trigger吧。

17,090

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧