问题描述
- 数据库多人操作事务怎样保证
-
表A有字段b,用户每次调用字段b后,都需要给b加1后存库。然后,有两个用户C,D。用户C取出了字段b后,持有了一段时间,这段时间内,用户D对字段b进行了两次操作,即字段b现在的值为b+2,而当用户C持有时间过后,再操作字段b时,这时候用户C持有的字段b已经不是数据库中的那个字段了。那么,应该如何保证不会发生这种情况呢?谢谢。(框架是spring mvc, 业务处直接加的@Transactional)
解决方案
加锁,锁就是解决类似这种问题的,锁很容易使用的
解决方案二:
如果是oracle,数据库会自动维护读一致性,如果第一个事务修改没提交,第二个事务只可以读而不可以写,要等到第一个事务成功提交后,第二个事务才会允许修改,而这次修改的数据是建立在第一个事务修改后的数据上的。
时间: 2024-11-27 11:31:33