首先要说明的是,可以用一条语句实现你的要求,但是这条语句的使用效率非常低,如果数据量大,运行就非常的慢。具体语法如下:
insert into B_table
(f1,f2,f3...,D)
select F1,F2,F3,...C from A_table where C not in (select D from b_table);
此句实现的就是A中C列不在B中D列的数据都写入B中,但效率低。
如果可能,建议在A中增加一个标志位,标志是否已经写入过B,而且此标志位要做索引。
让两个数据库能直接建立分布式数据库并入同一个事务那就简单了,像 oracle 有 Database Link 能做到。DB2 也有类似的方式。
insert into B.Table2 (D)
select C
from A.Table1 a
left join B.Table2 b on a.C = b.D
where b.D is null
;
insert into B (name1,name2) values(select A.name1,A.name2 from A,B where A.id!=B.id)
同意楼上