我试图了解数据库事务的 ACID 属性:它们是如何实现的;哪一部分是原子性,哪一部分是持久性等。
假设我有一个包含两个动作的交易,A
并且B
. 不幸的是,系统在执行时关闭了电源action B
。系统重置后,我们知道数据库将保留(通过 sqlite 中的回滚)执行之前的状态action A
。那么,这显示了哪种 ACID 属性,原子性还是持久性?
另一种情况:假设在执行时action B
,发生错误并被通知给应用程序,并且应用程序回滚。我认为这是由用户而不是数据库引擎实现的纯原子性。我对么?