RDB$GET_TRANSACTION_CN()
DSQL, PSQL
RDB$GET_TRANSACTION_CN (transaction_id)
Параметр | Описание |
---|---|
transaction_id |
Номер (идентификатор) транзакции |
BIGINT
Возвращает номер подтверждения (Commit Number) для заданной транзакции.
Note
|
Внутренние механизмы Firebird используют беззнаковое 8-байтное целое для Commit Number и беззнаковое 6-байтное целое для номера транзакции.Поэтому, несмотря на то, что язык SQL не имеет без знаковых целых, а |
Если функция RDB$GET_TRANSACTION_CN
возвращает значение больше 1, то это фактический (Commit Number) транзакции,то есть эта транзакция была зафиксирована после запуска базы данных.
В остальных случая функция может возвращать одно из следующих результатов, указывающих статус фиксации транзакции:
-2
|
мёртвые транзакции (отмененные); |
-1
|
зависшие транзакции (в состоянии limbo 2PC транзакций); |
0
|
активные транзакции; |
1
|
для транзакций подтверждённых до старта базы данных или с номером меньше чем OIT (Oldest Interesting Transaction); |
NULL
|
если номер транзакции равен |
RDB$GET_TRANSACTION_CN
select rdb$get_transaction_cn(current_transaction) from rdb$database;
select rdb$get_transaction_cn(123) from rdb$database;
Note
|
За более детальной информацией о Commit Number, обратитесь к Firebird 4.0 Release Notes. |