Кои команди за управление на транзакции знаете?
sobes.tech AI
Отговор от AI
BEGIN (може да бъде неявен), COMMIT, ROLLBACK.
-
BEGIN: Започва нова транзакция. Не е задължително за първия оператор
DMLв сесията, тъй като транзакцията ще започне неявно.BEGIN TRANSACTION; -
COMMIT: Запазва всички промени, направени в текущата транзакция, и я приключва.
COMMIT; -
ROLLBACK: Отменя всички промени, направени в текущата транзакция, и я приключва.
ROLLBACK;
Някои системи за управление на бази данни също поддържат:
-
SAVEPOINT: Установява точка за запазване в рамките на текущата транзакция. Позволява връщане към тази точка, без да се отменя цялата транзакция.
SAVEPOINT my_savepoint; -
ROLLBACK TO SAVEPOINT: Отменя промените до посочената точка за запазване.
ROLLBACK TO SAVEPOINT my_savepoint; -
RELEASE SAVEPOINT: Премахва точката за запазване.
RELEASE SAVEPOINT my_savepoint;
Пример за последователност от команди:
BEGIN; -- започване на транзакция
INSERT INTO users (name) VALUES ('Alice'); -- изпълнение на операция
SAVEPOINT before_update; -- установяване на точка за запазване
UPDATE products SET price = price * 1.1 WHERE id = 1; -- изпълнение на друга операция
-- Ако нещо се обърка с актуализацията, може да се върне към точката за запазване
-- ROLLBACK TO SAVEPOINT before_update;
-- Ако всичко е наред, потвърждаване на промените
COMMIT; -- приключване на транзакцията и запазване на промените
-- Ако трябва да отмените цялата транзакция след BEGIN
-- ROLLBACK;
Разбирането на тези команди е критично за гарантиране целостта на данните в приложения, работещи с релационни бази данни.