SQL transaktsioonid

Transaktsioon – see on loogilises järjekorras toimingute jada, mida teostab kasutaja või programm andmebaasiga töötades. Iga andmete loomine, muutmine või kustutamine on transaktsioon.

Transaktsioonide töökindluse tagamiseks järgitakse ACID-põhimõtteid:

ACID-põhimõtted:

  • Aatomilisus – kõik või mitte midagi (ebaõnnestumisel tühistatakse).(Атомарность)
  • Järjepidevus – andmed jäävad kehtivaks ja loogiliseks.(Согласованность)
  • Isolatsioon – transaktsioonid ei sega üksteist.(Изолированность)
  • Püsivus – kinnitatud andmed ei kao isegi süsteemivea korral.(Долговечность)

Tehingute haldamiseks kasutatakse järgmisi käske:

  • COMMIT
    Сохраняет изменения
  • ROLLBACK
    Откатывает (отменяет) изменения
  • SAVEPOINT
    Создаёт точку к которой группа транзакций может откатиться
  • SET TRANSACTION
    Размещает имя транзакции.

--SQL transaktsioonid 
create database transaktTARpv24
use transaktTARpv24
create table t(
id int not null primary key, 
s varchar(40),
si smallint);

--salvestame transaktsioni
begin transaction;
insert into t (id, s) values (4, 'fourth');
select * from t
--tagasi võtmine
rollback;
select * from t
--kustuttame 1.rida ja võtame tagasi
begin transaction;
delete from t where id = 1;
select * from t
rollback; 
select * from t


--uuendamine terve tabeli ja si=5 ja võtame tagasi 
begin transaction;
update t 
set si = 5;
select * from t
rollback; 
select * from t

HAMPP’is

start transaction;
insert into t (id, s) values (4, 'fourth');
select * from t

--tagasi võtmine
rollback;
select * from t
START transaction;
savepoint sp1;
select * from t;
update t 
set si = 5;
select * from t;
rollback to savepoint sp1; 
select * from t;