Транзакции. Когда делать rollback? - MySQL
Формулировка задачи:
Подскажите как правильно работать с транзакционной моделью
Есть ряд запросов (выполняю в PHP ), которые надо сделать либо все , либо не одного.
т.е делаю так:Так вот, когда делать Rollback? 1) После ВСЕХ запросов сделать общую проверку mysql_errno() и если ==0, то делаем один ROLLBACK. 2) Или после каждого запроса проверять на ошибки и если есть хоть одна то тогда ROLLBACK? 3) Или после каждой проверки mysql_errno() каждый раз делать ROLLBACK?
SET AUTOCOMMIT=0; START TRANSACTION; SELECT update_1; SELECT update_2; SELECT insert_1; SELECT insert_2 ... итд. COMMIT;
Решение задачи: «Транзакции. Когда делать rollback?»
textual
Листинг программы
mysql_query("SET AUTOCOMMIT=0"); mysql_query("START TRANSACTION"); mysql_query("COMMIT");mysql_query("ROLLBACK")
Объяснение кода листинга программы
SET AUTOCOMMIT=0
- Эта строка кода отключает автоматическое подтверждение транзакций. Это необходимо, чтобы иметь возможность контролировать процесс подтверждения транзакций вручную.START TRANSACTION
- Эта строка кода начинает транзакцию. Это означает, что все последующие операции будут считаться частью этой транзакции, и либо все они будут успешно выполнены и подтверждены, либо все будут отменены, если что-то пойдет не так.COMMIT
- Эта строка кода подтверждает транзакцию. Это означает, что все изменения, сделанные в рамках этой транзакции, теперь постоянны и не могут быть отменены.ROLLBACK
- Эта строка кода отменяет транзакцию. Это означает, что все изменения, сделанные в рамках этой транзакции, теперь отменены, и база данных возвращена к состоянию, которое она была до начала транзакции.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д