| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: computational model of transactions
Brian Selzer wrote:
>
> A compiler can tell the difference between x = 10 and x = x + 5, why can't a
> dbms?
A fair question.
It seems to me easy enough to tell if an UPDATE statement references any attributes on the right side of the equals sign.
> The system should be able to detect whether or not the new value depends on
> the previous value. The first UPDATE statement above does not, the second
> does.
>
> As an aside, it is not really necessary that the system detect this: but the
> developer must, because in a concurrent environment the difference in the
> semantics of replacement and modification has ramifications that can affect
> the appropriate choice of transaction isolation level.
>
> > While we're talking manipulations: what about
> > INSERT and DELETE? Are there variants of
> > those, too? Are those supposed to be handled
> > differently in transaction context?
> >
>
> I haven't given this much attention, but at first glance, no, I don't think
> so.
How about
INSERT into Table (a) values (1) where not exists (select * from Table where a = 1);
in two separate concurrent transactions?
Marshall Received on Sun Aug 06 2006 - 01:37:17 CDT
![]() |
![]() |