Почему опция автоматической транзакции в CakePHP называется "атомарной"?
Я не понимаю значения слова "атомарный". Например:
$conn = $this->ArticlesTable->connection();
$articles->save($entity, ['atomic' => false]); // <-- here
$conn->commit();
Не должно ли вместо этого быть "автоматическая фиксация"?
1 answers
На самом деле вы включаете/выключаете "атомарные" транзакции, а не "автоматические" транзакции.
"Атомарный" - правильный термин:
Атомарная транзакция - это неделимая и несводимая серия операций с базой данных, в которой либо все происходит, либо ничего не происходит. Гарантия атомарности предотвращает частичное обновление базы данных, что может вызвать большие проблемы, чем полное отклонение всей серии.
Ключ есть"...такой, что либо ВСЕ происходит, либо НИЧЕГО НЕ происходит"
.Когда значение atomic равно false
(выключено), и вы запускаете сохранение, для которого требуется более одного запроса, он будет выполняться каждый по отдельности и может быть успешным для некоторых, но не для других.
Когда atomic true
(включен), и вы запускаете сохранение, для которого требуется более одного запроса, он обработает их как одну транзакцию и либо завершит все успешно, либо полностью завершит все. Нет частичные сохранения/обновления.