Subject Re: AW: [firebird-support] transaction the hundreth
Author Ann Harrison
On Fri, Jun 10, 2011 at 6:25 AM, André Knappstein, Controlling
<Knappstein@...> wrote:
> OK> I think, despite that the stored procedure inserts all data in one
> OK> transaction, the trigger runs before the other records were inserted.
>
> I am probably not the right person to dare such a statement, but isn't that as it should be, at least if your transaction is reading only committed versions?
>
> Your trigger runs when the records have been inserted, but the insert  is not yet committed.
>
> It is possible to configure transactions to read uncommitted inserts, but that would be by far too hot to handle for me :)
>

Firebird will not read uncommitted records *except* records created by
the current transaction. In other words, you see your own change
immediately, but don't see other transactions' changes until they are
committed (for read committed) or until you start a new transaction
(for concurrency and consistency).
And, all triggers file immediately as rows change. The standard
provides for other trigger firing times (end of statement and commit,
I think), but Firebird's triggers aways fire immediately before (for
before action triggers) or after the row change.

Good luck,

Ann