对数据进行查询操作后,或提示ORA-00054错误,这时选定行的资源被占用,资源正忙。其他程序或者用户在占用着此行数据或者此表。
直接查询。
select * from A1 t ;
此时取到的数据为运行前的数据,同一时刻其他用户进行数据修改无法获取。
实时更新查询
select * from A1 t for update ;
for update 更新,其他管理者进行数据的操作时可以进行update ,此限制用户的数量,连接用户少,线程使用不被占用时可以使用。
等待3秒后更新
select * from A1 t for update wait 3 ;
在锁表的情况下,更新其他用户commit的数据,wait 3的作用让权操作。
实时更新查询
select * from A1 t for update nowait ;
for update nowait 根据字面意思理解,无需等待着更新,即实时更新。
使用for update nowait的好处:不用无限制的等待被锁定的行!
对锁定的数据可以使其他的操作者避免更多的等待,也可以进行更多的控制
对交互式应用很受用!对多用户操作的数据可以进行交互式保存。
若使用了skip locked,则可以越过锁定的行,不会报告由wait n 引发的‘资源忙’异常报告