我的意思是执行:
insert into TABLE_B select * from TABLE_A;和
delete from TABLE_B where ID <= 10;
这两条SQL执行的同时,还能对TABLE_A和TABLE_B进行INSERT或UPDATE操作么?
那如果UPDATE那些记录并不是
insert into TABLE_B select * from TABLE_A;和
delete from TABLE_B where ID <= 10;
的子集,这样可以同时进行吧?
不同的数据库,多版本的实现机制不同,上述语句执行情况也就不一样,下面以oracle为例说明:
1.insert/delete语句可以并发执行,不会锁等待
2.并发insert不会锁等待
3.并发update,如果不是操作同一条记录,不会锁等待
=================================================
对真实存在的数据进行并发操作才有可能发生写冲突,所以楼主只要把握住这点就可以判断是否会冲突了。
建议楼主构造简单数据,开两个客户端,在不同的隔离级下去模拟并发操作,理论和实践相结合,你会理解的更透彻。
原文:http://www.cnblogs.com/xiaohuilong/p/5984780.html