Транзакция (TRANSACTION)
Группа SQL операций, выполняемых как единое целое: либо все успешно, либо ни одна.
BEGIN; -- операции COMMIT; -- или ROLLBACK;
Объяснение
Пример
-- Перевод денег между счетами BEGIN; UPDATE accounts SET balance = balance - 1000 WHERE id = 1; UPDATE accounts SET balance = balance + 1000 WHERE id = 2; COMMIT; -- Если что-то пошло не так: -- ROLLBACK;
Связанные термины
Анекдоты по теме
— Что такое триггер? — Код, который выполняется автоматически при INSERT/UPDATE/DELETE. — Пример? — Аудит: при UPDATE employees — записывать старое и новое значение в audit_log. — Риски? — Скрытая логика. Сложно дебажить. Если много триггеров — неожиданные эффекты. — Рекомендация? — Использовать осторожно. Только для infrastructure concerns: аудит, обновление updated_at.
Начинающий DBA удалил таблицу. Шеф спрашивает: — Бэкап сделал? — А что это? — Уволю. — Может, ROLLBACK? — А он был BEGIN? — Не помню. — Тогда точно уволю.
— Папа, а что такое транзакция? — Это когда ты говоришь маме «Я мою посуду», начинаешь мыть, но если она входит на кухню — делаешь ROLLBACK и говоришь «Я ещё не начинал».