SQL数据库的并发冲突是什么?
答案 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