用PLSQL Developer新建一个command window窗口,执行
update A g set g.status='9' where seq_id in(3407144);
--休眠8秒
exec dbms_lock.sleep(8);
update A g set g.status='9' where seq_id in(3407146);
commit;
再新建一个command window窗口,执行
update A g set g.status='4' where seq_id in(3407146);
--休眠20秒
exec dbms_lock.sleep(20);
update A g set g.status='4' where seq_id in(3407144);
commit;
两个相互锁的sql执行,两个执行sql的事务是一起提交的,最后查数据,发现两条记录最后的状态是4,说明以最后提交的数据为准
SQL并发更新冲突
本文介绍了一个关于SQL并发操作的问题案例,通过两个相互锁定的SQL更新语句,展示了当两个事务同时更新同一数据时可能发生的情况。最终结果表明,在Oracle数据库中,以最后一个提交的事务为准。
316

被折叠的 条评论
为什么被折叠?



