写数据库脚本同步两张表的数据

表A一张表数据量很大 ,表B是新建的表其中部分字段属性想同 ,请问怎么把表A中的数据同步到表B中来

如果只想复制相同字段的数据,执行如下SQL(oracle):
insert into B(字段1,字段2,字段3) select 字段1,字段2,字段3 from A

truncate table B;
insert into B select * from A;(如果A,B结构完全相同)

update A set A.cols1 in (
select B.cols1 from B

),A.cols2 (
select B.cols1 from B
) 你可以试下,我做过实验了

楼上几位的回答对于解决一般的问题还是可以的,但如果以上述方法同步数据的同时,又有数据更新到A表中呢,会造成数据的丢失的。
我的想法是,先create 一张临时表B_Tmp,表结构和被同步的表相同,此处为B表,表A中一定有主键或者是更新时间之类的标志,根据标志将更新(包括新增的)新增到B_Tmp中,再根据B表中的主键判断是新增还是更新到A表中。

如果楼主用的是Oracle的话,可以用Merge语法将A表的部分字段同步到B表中,而且效率很高:

Merge into B b
using(select a.xx,a.xxx from A)a
on(a.xx=b.xx)
when matched then
update
set b.xxx=a.xxx
when not matched then
insert
(b.xx,b.xxx)
values
(a.xx,a.xxx)

而且B不一定是一个table,可以是任意自己组合的结果集。如果是Oracle10g或以上版本还可以只写matched(或者not matched)来保证只做update(或insert)。

仅供参考~

写个存储过程就可以了

第一次可以通过insert into B(字段1,字段2,字段3) select 字段1,字段2,字段3 from A来做,以后可以通过触发器来实现两种表的同步