参考ACID:Consistency(一致性):指数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。
例如:
对银行转帐事务,不管事务成功还是失败,应该保证事务结束后ACCOUNTS表中Tom和Jack的存款总额为2000元,不应出现多或少.保证数据完全一致.
一致性是指数据处于一种语义上的有意义且正确的状态。一致性是对数据可见性的约束,保证在一个事务中的多次操作的数据中间状态对其他事务不可见的。因为这些中间状态,是一个过渡状态,与事务的开始状态和事务的结束状态是不一致的。 举个例子,张三给李四转账100元。事务要做的是从张三账户上减掉100元,李四账户上加上100元。一致性的含义是其他事务要么看到张三还没有给李四转账的状态,要么张三已经成功转账给李四的状态,而对于张三少了100元,李四还没加上100元这个中间状态是不可见的。
一致性不仅仅是mysql的,是事务的特性之一 个人理解指的是对关联数据的操作应该在每份数据里都保证生效,比如A、B两个表,A.column1=B.column2,那么如果更新了A.column1,则必须同步更新B.column2
一致性是对数据可见性的约束:中间状态的数据对外不可见,只有最初和最终状态的数据对外可见。 区分于原子性,原子性关注于状态:要么全部成功,要么全部失败,不存在部分成功的状态。
至于中间100块钱从A的账户去扣减,或者B的账户去添加,是我们看不到的中间状态 谢谢!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。