为什么CakePHP中的自动事务选项被称为"原子"?

Pau*_*nto 4 cakephp transactions atomic cakephp-3.0

我不明白"原子"这个词的含义.例如:

$conn = $this->ArticlesTable->connection();
$articles->save($entity, ['atomic' => false]); // <-- here
$conn->commit();
Run Code Online (Sandbox Code Playgroud)

它应该不是"自动提交"吗?

Dav*_*ave 7

你实际上打开/关闭"原子"交易,而不是"自动"交易.

"原子"是正确的术语:

原子事务是一系列不可分割且不可简化的数据库操作,因此要么全部发生,要么一无所获.原子性的保证阻止了数据库的更新仅部分发生,这可能导致比完全拒绝整个系列更大的问题.

- 维基百科:原子性

关键是"......所有ALL都会发生,或者发生任何事情."

当atomic是false(off),并且你运行一个需要多个查询的保存时,它将单独运行每个查询,并且可以在某些查询上成功,但在其他查询中不会成功.

当atomic是true(on),并且您运行需要多个查询的存储时,它会将它们作为单个事务处理,并且要么全部成功完成,要么完全失败.没有部分保存/更新.