сновные концепции транзакции описываются аббревиатурой ACID –
- Atomicity – Атомарность
- Consistency – Согласованность
- Isolation – Изолированность
- Durability – Долговечность
Для управления транзакциями используются следующие команды:
- COMMIT
Сохраняет изменения - ROLLBACK
Откатывает (отменяет) изменения - SAVEPOINT
Создаёт точку к которой группа транзакций может откатиться - SET TRANSACTION
Размещает имя транзакции.
create table T(
id int not null primary key,
s varchar(40),
si SMALLINT);
insert into T(id, s) values (1, 'first');
insert into T(id, s) values (2, 'second');
insert into T(id, s) values (3, 'third');
SELECT * from T;
--transaktsiooni loomine
begin transaction;
insert into T(id, s) values (4, 'fourth');
SELECT * from T;
--tegevuse tagasi võtmine
Rollback;
Select * from T;
--loome transaktsiooni, mis võtab tagasi kustutatud kirjed
Begin transaction;
Delete from T where id>1;
select * from T;
Code language: PostgreSQL SQL dialect and PL/pgSQL (pgsql)
XAMPP START = BEGIN
1.MySQL – Выполнить пример со следующей страницы
Руководство по SQL. Транзакции.
developers tabeli loomine

andmete lisamine tabelisse

tabelis muudatuste salvestamine

tühistan selle muudatuse

kustutan viies ID

tühistan selle muudatuse

Ülesanne viie peale:
create table
create table tblPhysicalAddress(
Addressid int not null primary key,
EmployeeNumber int,
HouseNumber varchar(20),
StreetAddress varchar(20),
City varchar(20),
PostalCode varchar(20));
Code language: PostgreSQL SQL dialect and PL/pgSQL (pgsql)

create transaktsiooni procedure, üritab uuendada linnade välju mõlemas tabelis transaktsiooni käigus
create procedure spUpdateAddress
as
Begin
Begin try
Begin Transaction
Update tblPhysicalAddress set City='LONDON'
where Addressid = 1 and EmployeeNumber = 101
Update tblPhysicalAddress set City = 'LONDON LONDON'
where Addressid = 1 and EmployeeNumber = 101
Commit Transaction
Print 'Transaction Rolled BACK'
END TRY
Begin Catch
Rollback Transaction
print 'Transaction Rolled Back'
END Catch
END
Code language: PostgreSQL SQL dialect and PL/pgSQL (pgsql)

BEFORE PROCEDURE

AFTER PROCEDURE
