日期:2014-05-16  浏览次数:21066 次

菜鸟求助一个批量更新的问题
小弟菜鸟我现在有一个需求,要对一张表(表A)进行批量更新,这张表里有一个自增的ID字段和一个INT型的字段(假如叫F1),其他结构在本问题里不太重要,现在的情况是:我需要从另一张表里(表B)取出一个值(INT)赋给某个变量(拿定名为index),然后用该变量更新表A的F1列。
要求如下:1、在更新表A的过程中,表B需要锁定,不能有其他用户对其进行更新插入操作;2、对表A的更新并不是固定对所有的数据的F1列都写入变量index的值,而是每更新一条,index都要自加1,至于顺序,可以按照表A的ID升序。
举个例子吧,假如表A有三条记录,ID字段为1、2、3,F1字段均为0,index为19,那么更新后,表A的三条记录的F1字段应该分别为19、20、21。
这语句或是方法应该怎么写?跪求大神。
表A的数量在2-4万之间。

------解决方案--------------------
如果表有三条记录,ID字段为1、2、4,F1字段均为0,index为19,那么更新后,表A的三条记录的F1字段应该分别为19、20、21还是19,20,22?
------解决方案--------------------
UPDATE A SET f1=(select INDEX+ID from B WHERE  INDEX=19)

------解决方案--------------------
引用:
Quote: 引用:

如果表有三条记录,ID字段为1、2、4,F1字段均为0,index为19,那么更新后,表A的三条记录的F1字段应该分别为19、20、21还是19,20,22?
还是19、20、21

UPDATE a SET f1=(select INDEX from b WHERE  INDEX=19)+ROWNUM-1