Вопрос25
Осталось:

Объясните транзакционные команды COMMIT и ROLLBACK.

Образцовый ответ

Показывать ответ по умолчанию

COMMIT

  • Фиксирует текущую транзакцию.
  • Все изменения, сделанные в транзакции, становятся постоянными и видимыми для других пользователей.
  • После COMMIT отменить изменения нельзя.
MySQL 8.1
BEGIN TRANSACTION;

UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;

COMMIT;

ROLLBACK

  • Отменяет текущую транзакцию.
  • Все изменения, сделанные в транзакции, откатываются.
  • База данных возвращается в состояние до начала транзакции.
MySQL 8.1
BEGIN TRANSACTION;

DELETE FROM orders WHERE order_date < '2022-01-01';

-- Если передумали
ROLLBACK;

Использование в управлении транзакциями:

  • BEGIN TRANSACTION или START TRANSACTION: начало транзакции.
  • COMMIT: фиксация транзакции
  • ROLLBACK: откат транзакции.