首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

初学者一个批量更新的有关问题

2013-12-04 
菜鸟求助一个批量更新的问题小弟菜鸟我现在有一个需求,要对一张表(表A)进行批量更新,这张表里有一个自增的

菜鸟求助一个批量更新的问题
小弟菜鸟我现在有一个需求,要对一张表(表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

热点排行