Subject | Re: GLOBAL TEMPORARY tables in Firebird |
---|---|
Author | Adam |
Post date | 2005-11-29T05:50:39Z |
> Does Firebird have GLOBAL TEMPORARY table concept.Not in 1.5
> We are facingcontention.
> problems in a multiple user environment where users are writing to a
> single table concurrently. The page is locked due to Lock
> 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