Re: 10g: parallel DML trigger race conditions?

From: Frank Bergemann <FBergemann_at_web.de>
Date: Tue, 15 Feb 2011 23:07:46 -0800 (PST)
Message-ID: <2927960b-2068-49bb-9c61-7ebe037c51de_at_s11g2000yqc.googlegroups.com>



On 16 Feb., 07:34, Frank Bergemann <FBergem..._at_web.de> wrote:
> Hi,
>
> are triggers executed in parallel for parallel DML?
> What happens, if the same record is updated _twice_ in a bulk update?
> Something like this:
> forall i reloads.first..reloads.last
>    update account set money = money + reloads(i).amount where
> account.id = reloads.acct_id;
>
> Can it happen, that two "trigger before insert or update on account
> for each row" are executing in parallel for the same record?
> - if acct_id = X is there multiple times in table reloads.
>
> So they will find the same :old conditions.
> Or does oracle take care for sequential execution of trigger for same
> record?
>
> - thanks!
>
> rgds,
> Frank

found the response here:
http://download.oracle.com/docs/cd/B28359_01/server.111/b28313/usingpe.htm#CACEJACE It says:
"Parallel DML operations cannot be done on tables with triggers."

rgds,
Frank Received on Wed Feb 16 2011 - 01:07:46 CST

Original text of this message