[英]transaction commit?
有人可以解释何时以及为什么使用commit吗? http://msdn.microsoft.com/en-us/library/ms190295.aspx
。
1)更新tableX recordM
2)在表Y记录中更新N
3)更新tableZ记录O
4)在这里使用提交
..
如果2)失败并且recordN没有更新,则回滚而不进行3)和4)提交? 那是你会用它的地方吗?
每当一个或多个操作(事务)完成并且您希望更改数据库时,请使用commit。
在您的示例中,如果2)失败,则应进行回滚,并且操作1)将撤消操作,以便使数据库保持一致
例如。 如果您有书店系统,则每当出售书籍时,都必须执行以下操作:
您要么希望所有操作成功完成,要么什么都不做。 所以你应该:
如果有问题,请全部回滚(撤消)
当您要将对偶操作视为一项操作时,请始终使用提交。 这意味着当至少一个失败时,所有错误都将恢复为提交前的状态。
这非常有用,因为某些动作应视为原子操作,例如。 银行业务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.