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