Subject Re: GLOBAL TEMPORARY tables in Firebird
Author Adam
> Does Firebird have GLOBAL TEMPORARY table concept.

Not in 1.5

> We are facing
> problems in a multiple user environment where users are writing to a
> single table concurrently. The page is locked due to Lock
contention.
> Can this problem be overcome by any other means?
>

Yes, you can use a different transaction to read the data and write
the data, rather than one that sits around idle for hours. Of course
then you need to make business rule decisions about how you handle
changes made in the interim. A generator and trigger can be used to
let you know that the data in the record is newer than when queried,
and you can present a screen to the user to merge the changes, or if
you are feeling brave try and automate the merge.

But I doubt the page is locked. Firebird doesn't lock pages in that
manner, not because someone has made a change to a record. More
likely if you are using a nowait transaction another transaction that
is newer than when your transaction started has modified the record.
Firebird will not let you write to a record that has a newer version
than you can see.

There is nothing stopping you from using some of the context
variables, such as CURRENT_USER, CURRENT_CONNECTION or
CURRENT_TRANSACTION to emulate a temporary table, but make sure that
is actually going to solve the problem.

Adam