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

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

  • https://www.studytonight.com/dbms/tcl-command.php [Архівовано 28 грудня 2021 у Wayback Machine.]
  • https://www.postgresqltutorial.com/postgresql-transaction/ [Архівовано 20 січня 2022 у Wayback Machine.]
  • https://www.geeksforgeeks.org/sql-ddl-dml-tcl-dcl/ [Архівовано 28 грудня 2021 у Wayback Machine.]

Див. також

  • Data Definition Language
  • Data Control Language


Бази даних Це незавершена стаття про бази даних.
Ви можете допомогти проєкту, виправивши або дописавши її.
  • п
  • о
  • р
Типи
Поняття
Об'єкти
Складові
Функції
Пов'язані теми

П:  Портал «Програмування» П:  Портал «Інформаційні технології»