Transaction Control Language

Transaction Control Language (TCL) (Мова керування транзакціями) — це сімейство комп'ютерних мов, що використовуються в комп'ютерних програмах або користувачами баз даних для керування транзакціями.

Тепер найпопулярнішою мовою TCL є SQL, що використовується для отримання і маніпулювання даними в реляційній базі даних.

TCL у випадку з SQL включає в себе такі команди:

  • Begin - служить визначенням початку транзакції;
  • Commit - застосовує транзакцію;
  • Rollback - відкочує всі зміни, зроблені у контексті поточної транзакції;
  • Savepoint - встановлює проміжну точку збереження усередині транзакції.

Приклад у 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

Корисні Джерела

Див. також

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.