このページは機械翻訳されています。英語の原文をお読みください。 English

IBSurgeon ライブラリ

Firebird 2.5: 自律トランザクション

機能:

自律的(独立した)トランザクションでコードの一部を実行します。例外を発生させる必要があるが、データベースの変更をロールバックしたくない場合に便利です。

自律的トランザクションブロックの本体内部で例外が発生した場合、変更はロールバックされます。ブロックが最後まで実行された場合、トランザクションはコミットされます。

新しいトランザクションは、既存のトランザクションと同じ分離レベルで開始されます。

デッドロックを避けるために注意して使用する必要があります。

作成者:

Adriano dos Santos Fernandes

構文:

in autonomous transaction

do

:

create table log (

“date” timestamp,

msg varchar(60)

);

create exception e_conn ‘Connection rejected’;

set term !;

create trigger t_conn on connect

as

begin

if (current_user = ‘BAD_USER’) then

begin

in autonomous transaction

do

begin

insert into log (“date”, msg) values (current_timestamp, ‘Connection rejected’);

end

exception e_conn;

end

end!

set term ;!