关于Trigger的使用 - 转自AskTom

-- Thanks for the question regarding "Trigger on a table Fire at commit.", version 9.2.0

 

Submitted on 18-Jul-2007 12:40 Central time zoneTom's latest followup | Bookmark | Bottom

Last updated 17-Sep-2009 18:20

You Asked

 

Hi, 

I have few transactional tables. 

Tab_M is the Master transactional table. 

All other concern tables are also transactional and child(or child-to-Child) 

of the table Tab_M. 

 

I want to put a Trigger to hold some bussiness logic. 

 

In a regular scenario, record inserted on Tab_M then all other 

transactional tables and Finally commit takes place. 

 

I want this trigger will fire only when a transaction is Commited. 

 

Thanks 

and we said...

 

there is no "on commit" trigger. 

 

I hate triggers, I especially hate the concept of this one - likely you are going to try and enforce some entity integrity constraints - but you cannot do that in triggers without LOCKING tables in general (and I doubt you would do that) 

 

My recommendation: 

 

create a stored procedure that does the transaction from start to finish, performing whatever checks you find necessary. DO NOT mess around with triggers, DO NOT implement logic in triggers. Use a transactional API in the form of stored procedures - do not allow applications to directly modify the tables - have them call these well formed, correct procedures. 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值