数据库事务完整性和原子性

时间:2016-05-31 14:34:32

标签: database concurrency transactions integrity

假设我在RDBMS数据库中创建一个表并在其中创建一个整数字段。现在我有两个客户端同时更改同一记录的整数字段值,例如客户端C1将其设置为1,同时客户端C2将其设置为2,用于相同的记录R1。

  1. 该字段设置的值是多少?如何在事务中设置此值的C1和C2中受影响?
  2. 如果C1和C2都在事务中设置了值,那么两者的提交是否成功?
  3. (问题1和2的答案是否取决于RDBMS,还是有关于系统如何表现的惯例?)

1 个答案:

答案 0 :(得分:0)

事务的提交可以成功也可以失败。如果两个并行事务写入同一个字段,那么在您的情况下只有一个会成功。

但是,根据RDBMS,交易可以说"增加1"而不是"设置为1"在这种情况下,没有冲突,两个交易都可以继续。