Ta strona została przetłumaczona maszynowo. Przeczytaj oryginał angielski. English

Biblioteka IBSurgeon

Firebird 2.5: Transakcje autonomiczne

Funkcja:

Wykonuje fragment kodu w autonomicznej (niezależnej) transakcji. Jest to przydatne w przypadkach, gdy

chcesz zgłosić wyjątek, ale nie chcesz, aby zmiany w bazie danych zostały wycofane.

Jeśli wewnątrz bloku autonomicznej transakcji zostaną zgłoszone wyjątki, zmiany są

wycofywane. Jeśli blok wykona się do końca, transakcja jest zatwierdzana.

Nowa transakcja jest inicjowana z tym samym poziomem izolacji co istniejąca.

Należy jej używać ostrożnie, aby uniknąć zakleszczeń.

Autor:

Adriano dos Santos Fernandes

Składnia:

in autonomous transaction

do

Przykład:

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