Rod Taylor wrote:
> On Thu, 2003-10-02 at 14:30, Rong Wu wrote:
>
>>Hi,
>>
>>I have a select like this:
>>
>>SELECT MAX(transactionid) FROM cbntransaction WHERE transactiontypeid=0;
>
>
> For various reasons (primarily MVCC and the ability to make custom
> aggregates making it difficult) MAX() is not optimized in this fashion.
>
> Try:
>
> SELECT transactionid
> FROM ...
> WHERE ...
> ORDER BY transactionid DESC
> LIMIT 1;
Despite this good suggestion, if you're using this technique to generate
the next transaction ID, you're going to have errors as concurrency rises.
Use a SERIAL, which guarantees that you won't have two processes generate
the same number.
--
Bill Moran
Potential Technologies
http://www.potentialtech.com