Firebird 2.5: Autonome Transaktionen
Funktion:
Führt einen Codeabschnitt in einer autonomen (unabhängigen) Transaktion aus. Dies ist nützlich in Fällen, in denen
eine Ausnahme ausgelöst werden muss, ohne dass die Datenbankänderungen zurückgerollt werden sollen.
Wenn innerhalb des Blocks einer autonomen Transaktion Ausnahmen ausgelöst werden, werden die Änderungen
zurückgerollt. Wenn der Block bis zum Ende durchläuft, wird die Transaktion committet.
Die neue Transaktion wird mit demselben Isolationsgrad wie die bestehende Transaktion gestartet.
Sollte mit Vorsicht verwendet werden, um Deadlocks zu vermeiden.
Autor:
Adriano dos Santos Fernandes
Syntax:
in autonomous transaction
do
Beispiel:
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 ;!