有两张表分别为: problem, answer
problem 表中的字段:problem 表中含有ANSWERNUMBER字段answer表中含有PROBLEM 和 ASKSTATE两个字段,其中PROBLEM 就是problem 表中的idproblem 表中ANSWERNUMBER字段是根据answer表中country(PROBLEM )and ASKSTATE != -1得出的
我用的是Oracle数据库,在数据量小的情况下,更新表problem是没问题的,但是大数据量的话,就会锁住数据苦衷的表,请各位高手指点怎么写SQL文,才能大批量的修改problem 表中ANSWERNUMBER字段?
problem 表中的字段:problem 表中含有ANSWERNUMBER字段answer表中含有PROBLEM 和 ASKSTATE两个字段,其中PROBLEM 就是problem 表中的idproblem 表中ANSWERNUMBER字段是根据answer表中country(PROBLEM )and ASKSTATE != -1得出的
我用的是Oracle数据库,在数据量小的情况下,更新表problem是没问题的,但是大数据量的话,就会锁住数据苦衷的表,请各位高手指点怎么写SQL文,才能大批量的修改problem 表中ANSWERNUMBER字段?
可以考虑:
update problem 表之前,先锁定要修改的范围
declare
rec_problem problem%row_type;
begin
...
update problem into rec_problem where .... for update;
--执行更新
...