Вопрос №25
Осталось:
Объясните транзакционные команды COMMIT и ROLLBACK.
Образцовый ответ
Показывать ответ по умолчанию
COMMIT
- Фиксирует текущую транзакцию.
- Все изменения, сделанные в транзакции, становятся постоянными и видимыми для других пользователей.
- После COMMIT отменить изменения нельзя.
MySQL 8.1BEGIN 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.1BEGIN TRANSACTION; DELETE FROM orders WHERE order_date < '2022-01-01'; -- Если передумали ROLLBACK;
Использование в управлении транзакциями:
- BEGIN TRANSACTION или START TRANSACTION: начало транзакции.
- COMMIT: фиксация транзакции
- ROLLBACK: откат транзакции.