原子性和一致性有什么区别?它看起来对我来说,两者都是用不同的话说同样的事情.
原子性
执行事务的所有任务都不执行.没有部分交易.例如,如果事务开始更新100行,但是系统在20次更新后失败,则数据库会将更改回滚到这20行.
一致性
事务将数据库从一个一致的状态带到另一个一致的状态.例如,在借记储蓄账户并记入支票账户的银行交易中,失败不能导致数据库仅授予一个帐户,从而导致数据不一致.
解决方法
原子性的确是说每个事务都是全部的,也可以是全部的,也就是说,它的全部或者全部动作都不执行,也没有部分的操作.
但是,一致性说明确保任何事务将数据库从一个有效状态转移到另一个.写入数据库的任何数据必须根据所有定义的规则有效,包括但不限于约束,级联,触发器及其任何组合
(taken from Wikipedia).
这基本上意味着只有有效的状态被写入到数据库中,如果一个事务不违反数据一致性或者回滚,它将被执行.
希望它为你清除东西.