Thread: Deferred triggers?
Perhaps another possible feature request! I've looked through the docs and it doesn't appear that it's possible to create deferred triggers - i.e. they don't get called unless the current transaction commits. (My understanding is that they currently get called immediately whether or not there is a transaction in progress.) CSN ____________________________________________________ Start your day with Yahoo! - make it your home page http://www.yahoo.com/r/hs
CSN wrote: > Perhaps another possible feature request! I've looked > through the docs and it doesn't appear that it's > possible to create deferred triggers - i.e. they don't > get called unless the current transaction commits. The semantics of such a thing appear to be indeterminate. What happens if something in the trigger would have caused the original transaction to fail? Most people would expect all changes made by the original transaction, as well as those made by the trigger, to be rolled back. Using deferred triggers as you've defined it would then require chainged transactions, which could get very messy. > (My understanding > is that they currently get called immediately whether or not there is > a transaction in progress.) There is always a transaction in progress. -- Guy Rouillier
> CSN wrote: > > Perhaps another possible feature request! I've looked > > through the docs and it doesn't appear that it's > > possible to create deferred triggers - i.e. they don't > > get called unless the current transaction commits. > > The semantics of such a thing appear to be indeterminate. What happens > if something in the trigger would have caused the original transaction > to fail? Most people would expect all changes made by the original > transaction, as well as those made by the trigger, to be rolled back. > Using deferred triggers as you've defined it would then require chainged > transactions, which could get very messy. That doesn't sound too messy - the trigger could either cause the current transaction to abort, or commit. > > (My understanding > > is that they currently get called immediately whether or not there is > > a transaction in progress.) > > There is always a transaction in progress. I meant when you explicitly enclose multiple statments in a single transaction. > > -- > Guy Rouillier ____________________________________________________ Start your day with Yahoo! - make it your home page http://www.yahoo.com/r/hs