Транзакция в MySQL — это последовательность SQL-операций (например, INSERT, UPDATE, DELETE), рассматриваемых как единое целое, которое либо выполняется полностью, либо не выполняется вообще, гарантируя целостность данных с помощью принципов ACID (атомарность, согласованность, изоляция, длительность). Для работы с транзакциями таблицы должны использовать движок InnoDB или BDB.
Основные понятия транзакций:
Как работают транзакции:
Пример использования:
START TRANSACTION; # Начинаем транзакцию INSERT INTO accounts (user_id, amount) VALUES (1, 100); # Добавляем средства на счет UPDATE accounts SET amount = amount - 100 WHERE user_id = 2; # Снимаем средства со счета COMMIT; # Фиксируем изменения (если все прошло успешно) # Если возникла ошибка, можно использовать ROLLBACK;
Когда использовать транзакции:
Транзакции необходимы для операций, где требуется сохранить целостность данных, например, при банковских переводах, оформлении заказов или любом другом сложном изменении данных.
Откат транзакции
Откат транзакции – это действие, обеспечивающее аннулирование всех изменений данных, которые были сделаны в теле текущей незавершенной транзакции.
START TRANSACTION;
INSERT MyUserName (FName, LName)
VALUES ('TestName', 'TestName0');
INSERT MyUserTell (IdUser, TellN)
VALUES (@id=@@IDENTITY, '(097)2224455');
INSERT MyUserInfo (idUser, BDate)
VALUES (@id, '1990-01-02')
ROLLBACK;