我不理解" atomic"这个词的含义。例如:
$conn = $this->ArticlesTable->connection();
$articles->save($entity, ['atomic' => false]); // <-- here
$conn->commit();
不应该是&#34; autocommit&#34;代替?
答案 0 :(得分:6)
你实际上是打开/关闭“原子”交易,而不是“自动”交易。
“Atomic”是正确的术语:
原子交易是一个不可分割和不可简化的系列 数据库操作,要么全部发生,要么什么都不发生。一个 原子性保证仅阻止对数据库的更新 部分地,这可能导致比拒绝整体更大的问题 系列直接。
关键是“......所有ALL都会发生,或者发生任何事情。”
当原子为false
(关闭),并且您运行需要多个查询的保存时,它将单独运行每个查询,并且可以在某些查询上成功,但不能在其他查询上成功。
当atomic是true
(on),并且您运行需要多个查询的保存时,它会将它们作为单个事务处理,并且要么全部成功完成,要么失败一切都完全。没有部分保存/更新。