注册 登录
编程论坛 Windows论坛

如何通过insert into select更新源表数据至目标表

自强不西 发布于 2025-01-05 11:58, 1827 次点击
请教各位大咖
如何通过insert into select更新源表数据至目标表,且源表数据指定字段与目标表指定字段值相同的不予复制至目标表中。
5 回复
#2
yiyanxiyin2025-01-06 11:16
假设源表和目标表字段相同:  insert into 目 select * from 源  where 源.指定字段 not in (select 目.指定字段 from 目)

#3
apull2025-01-06 21:43
试试MERGE INTO
程序代码:

MERGE INTO tableA a
USING (SELECT col1, col2, col3, col4           
       FROM tableB
       WHERE col3 = 1
       ORDER BY col1) b
ON (a.col1 = b.col1)
WHEN NOT MATCHED THEN
  INSERT
    (col1, col2, col3, col4 )
  VALUES
    (b.col1, b.col2, b.col3, b.col4 );
#4
自强不西2025-01-07 14:30
多谢支持!受教啦!@apull

#5
自强不西2025-01-07 14:32
回复 2楼 yiyanxiyin
假如目标表和源表的结构不同,您发的这个程序还能用吗?如果不行如何更改,请指教!
#6
自强不西2025-01-07 15:19
回复 2楼 yiyanxiyin
试验结果不错,那就是字段前不能带表名称。多谢yiyanxiyin版主!
INSERT INTO mmm (th,hhsbh,pp) SELECT lbjth,lhhsbh,lpp FROM nnn WHERE nnn.lbjth NOT in (select mmm.th FROM mmm)
1