Transaction Control Language
Transaction Control Language (TCL) (Мова керування транзакціями) — це сімейство комп'ютерних мов, що використовуються в комп'ютерних програмах або користувачами баз даних для керування транзакціями.
Тепер найпопулярнішою мовою TCL є SQL, що використовується для отримання і маніпулювання даними в реляційній базі даних.
TCL у випадку з SQL включає в себе такі команди:
Приклад у PostgreSQL
Для прикладу, у нас є таблиця Sells (shop ,sweet ,price) , яка містить інформацію про продажі.
shop | sweet | price |
---|---|---|
SolodkaMriya | Nuts | 75 |
SolodkaMriya | ChervoniyMak | 70 |
BabusinySolodoshchi | Bounty | 120 |
Tsukerki | Korivka | 105 |
Tsukerki | Nuts | 155 |
Далі виконаємо наступну транзакцію
BEGIN;
UPDATE
Sells SET shop = 'newShop' WHERE shop ='SolodkaMriya' ;
UPDATE
Sells SET sweet = 'newSweet' WHERE shop ='newShop' ;
SELECT * FROM Sells
COMMIT;
Результат виконання транзакції
shop | sweet | price |
---|---|---|
newShop | newSweet | 75 |
newShop | newSweet | 70 |
BabusinySolodoshchi | Bounty | 120 |
Tsukerki | Korivka | 105 |
Tsukerki | Nuts | 155 |
Тепер спробуємо зробити те саме, але додавши при цьому відкат транзакцій(Rollback) та точку збереження (Savepoint)
BEGIN;
UPDATE
Sells SET shop = 'newShop' WHERE shop ='SolodkaMriya' ;
SAVEPOINT my_savepoint;
UPDATE
Sells SET sweet = 'newSweet' WHERE shop ='newShop' ;
SELECT * FROM Sells;
ROLLBACK TO my_savepoint;
COMMIT;
Після цього давайте виконаємо наступну транзакцію для початкової таблиці. Транзакція відкотилась до точки збереження і в нас змінилась лише назва магазину
shop | sweet | price |
---|---|---|
newShop | Nuts | 75 |
newShop | ChervoniyMak | 70 |
BabusinySolodoshchi | Bounty | 120 |
Tsukerki | Korivka | 105 |
Tsukerki | Nuts | 155 |