Firebird 2.5: 자율 트랜잭션
기능:
자율(독립) 트랜잭션에서 코드 조각을 실행합니다. 예외를 발생시켜야 하지만 데이터베이스 변경 사항이 롤백되는 것을 원하지 않는 경우에 유용합니다.
자율 트랜잭션 블록 내부에서 예외가 발생하면 변경 사항이 롤백됩니다. 블록이 끝까지 실행되면 트랜잭션이 커밋됩니다.
새 트랜잭션은 기존 트랜잭션과 동일한 격리 수준으로 시작됩니다.
교착 상태를 방지하기 위해 주의해서 사용해야 합니다.
작성자:
Adriano dos Santos Fernandes
구문:
in autonomous transaction
do
예제:
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 ;!