什么是并发冲突?

时间:2010-02-04 12:23:48

标签: concurrency

SQL数据库的并发冲突是什么?

3 个答案:

答案 0 :(得分:5)

假设您有一条SQL语句,例如UPDATE table SET a = a + 1 WHERE ...,它将对应于以下代码:

read a
a = a + 1
write a

假设两个客户端A和B同时执行此操作。可能发生以下情况(时间从上到下):

   A           B
read a     
            read a
a = a + 1
write a
            a = a + 1
            write a

会发生什么? a仅增加一次,但它应该增加两次。这是一种经典的并发冲突。为避免此类冲突,数据库使用交易

答案 1 :(得分:1)

我认为事务隔离问题(例如,不可重复读取,幻读,脏读)至少是您正在寻找的部分。查看更多信息这里: http://en.wikipedia.org/wiki/Isolation_%28database_systems%29

答案 2 :(得分:0)

当两个事务试图在数据库中锁定一个资源时发生并发冲突。有很多这方面的教程只是使用谷歌找到一些。这里是链接到一个 link text