Tato stránka byla strojově přeložena. Přečtěte si anglický originál. English

Knihovna IBSurgeon

Firebird 2.5: Autonomní transakce

Funkce:

Spustí kód v autonomní (nezávislé) transakci. Je užitečná v případech, kdy potřebujete

vyvolat výjimku, ale nechcete, aby byly změny v databázi vráceny zpět.

Pokud jsou uvnitř těla bloku autonomní transakce vyvolány výjimky, změny jsou

vráceny zpět. Pokud blok proběhne až do konce, transakce je potvrzena.

Nová transakce je zahájena se stejnou úrovní izolace jako ta stávající.

Měla by být používána s opatrností, aby se předešlo deadlockům.

Autor:

Adriano dos Santos Fernandes

Syntaxe:

in autonomous transaction

do

Příklad:

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 ;!