主要要实现以下目的,有两个表t1,t2,现在要更新t1某字段内容等于同表中的另一字段内容,更新一条并对应将更新后的此条信息插入t2表中,t1有需更新记录200万余条,写脚本如何实现,需要用什么,请大家介绍一下方法和思路
8 个解决方案
#1
update t1 set 字段=旧字段 ;
update t2 set 字段=(select 字段 from t1 where t1.字段=t2.字段);
commit;
update t2 set 字段=(select 字段 from t1 where t1.字段=t2.字段);
commit;
#2
是全表更新? 直接update....;insert.....;2条语句就可以了;
数据量大可以考虑通过主键分段。
数据量大可以考虑通过主键分段。
#3
1.把t1索引删了
2.更新T1
3.t2置于nologging模式
4.'更新一条并对应将更新后的此条信息插入t2表中?':insert /*+ append */ into t2 ...
2.更新T1
3.t2置于nologging模式
4.'更新一条并对应将更新后的此条信息插入t2表中?':insert /*+ append */ into t2 ...
#4
如果更新字段有索引,就删了。如果更新不带条件,就更新T1后批量插入T2,不用更新一条并对应将更新后的此条信息插入t2表中。
#5
是通过什么形式去更新的,写脚本,过程,函数,语法是怎么样的,主要就是两部分,更新一条对应插入一条
#6
写脚本!
#7
脚本格式还有语言类型可否介绍一下,或指明应该看那一方面的材料的。
#8
引用这个方法,然后写一个存储过程,定时运行这个存储过程就行了
#1
update t1 set 字段=旧字段 ;
update t2 set 字段=(select 字段 from t1 where t1.字段=t2.字段);
commit;
update t2 set 字段=(select 字段 from t1 where t1.字段=t2.字段);
commit;
#2
是全表更新? 直接update....;insert.....;2条语句就可以了;
数据量大可以考虑通过主键分段。
数据量大可以考虑通过主键分段。
#3
1.把t1索引删了
2.更新T1
3.t2置于nologging模式
4.'更新一条并对应将更新后的此条信息插入t2表中?':insert /*+ append */ into t2 ...
2.更新T1
3.t2置于nologging模式
4.'更新一条并对应将更新后的此条信息插入t2表中?':insert /*+ append */ into t2 ...
#4
如果更新字段有索引,就删了。如果更新不带条件,就更新T1后批量插入T2,不用更新一条并对应将更新后的此条信息插入t2表中。
#5
是通过什么形式去更新的,写脚本,过程,函数,语法是怎么样的,主要就是两部分,更新一条对应插入一条
#6
写脚本!
#7
脚本格式还有语言类型可否介绍一下,或指明应该看那一方面的材料的。
#8
引用这个方法,然后写一个存储过程,定时运行这个存储过程就行了