Yves Goergen wrote:
> (Damn I hate those lists that don't come with a Reply-To to the list!
> Resending...)
>
> On 13.11.2007 17:39 CE(S)T, Baron Schwartz wrote:
>> Yves Goergen wrote:
>>> Row level locking can only lock rows that exist. Creating new rows (that
>>> would have an influence on my MAX value) are still possible and thus row
>>> level locking is not what I need. I really need locking an entire table
>>> for every other read or write access.
>> InnoDB can also lock the gap, which will prevent new rows that would
>> have been returned by the SELECT. The manual has more info on this in
>> the section on consistent reads in InnoDB. FOR UPDATE will do what you
>> need.
>
> I've read about that "gap" but it sounded like "the place [somewhere]
> before a record where one could insert a new record into". Not sure what
> that should be. I'm not aware of the InnoDB internals. I know that
> usually (?) when a new record is stored, it is written to where is
> enough space for it, linked from a free pointer index. If one is locked,
> another one might be used. Order doesn't matter in relational databases.
Are you thinking that your theoretical knowledge of relational databases
must hold the answer to your questions about MySQL?
:-)
I suggest you read the entire manual section on InnoDB and experiment.
Set aside a day for it; there's a lot to learn there.
Baron

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.