Diese Seite wurde maschinell übersetzt. Lesen Sie das englische Original. English

IBSurgeon-Bibliothek

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