Firebird 2.5: Аутономне трансакције
Funkcija:
Pokreće deo koda u autonomnoj (nezavisnoj) transakciji. Korisno je u slučajevima kada
treba da podignete izuzetak, ali ne želite da promene u bazi budu poništene (rollback).
Ako se izuzeci podignu unutar tela bloka autonomne transakcije, promene se
poništavaju. Ako se blok izvrši do kraja, transakcija se potvrđuje (commit).
Nova transakcija se pokreće sa istim nivoom izolacije kao i postojeća.
Treba je koristiti oprezno kako bi se izbegli mrtve blokade (deadlocks).
Autor:
Adriano dos Santos Fernandes
Sintaksa:
in autonomous transaction
do
Primer:
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 ;!