Транзакции. Когда делать rollback? - MySQL

Узнай цену своей работы

Формулировка задачи:

Подскажите как правильно работать с транзакционной моделью Есть ряд запросов (выполняю в PHP ), которые надо сделать либо все , либо не одного. т.е делаю так:
SET AUTOCOMMIT=0; 
START TRANSACTION; 
SELECT update_1; SELECT update_2; SELECT insert_1; SELECT insert_2 ...  итд.
COMMIT;
Так вот, когда делать Rollback? 1) После ВСЕХ запросов сделать общую проверку mysql_errno() и если ==0, то делаем один ROLLBACK. 2) Или после каждого запроса проверять на ошибки и если есть хоть одна то тогда ROLLBACK? 3) Или после каждой проверки mysql_errno() каждый раз делать ROLLBACK?

Решение задачи: «Транзакции. Когда делать rollback?»

textual
Листинг программы
mysql_query("SET AUTOCOMMIT=0");
mysql_query("START TRANSACTION"); mysql_query("COMMIT");mysql_query("ROLLBACK")

Объяснение кода листинга программы

  1. SET AUTOCOMMIT=0 - Эта строка кода отключает автоматическое подтверждение транзакций. Это необходимо, чтобы иметь возможность контролировать процесс подтверждения транзакций вручную.
  2. START TRANSACTION - Эта строка кода начинает транзакцию. Это означает, что все последующие операции будут считаться частью этой транзакции, и либо все они будут успешно выполнены и подтверждены, либо все будут отменены, если что-то пойдет не так.
  3. COMMIT - Эта строка кода подтверждает транзакцию. Это означает, что все изменения, сделанные в рамках этой транзакции, теперь постоянны и не могут быть отменены.
  4. ROLLBACK - Эта строка кода отменяет транзакцию. Это означает, что все изменения, сделанные в рамках этой транзакции, теперь отменены, и база данных возвращена к состоянию, которое она была до начала транзакции.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.429 из 5
Похожие ответы