Google bigquery bigquery中的插入覆盖解决方案是什么?

Google bigquery bigquery中的插入覆盖解决方案是什么?,google-bigquery,Google Bigquery,我已经试过了: update `cmi.sourav_test_bq_mg` b set b.name=a.name from `cmi.sourav_test_bq_mg_2` a where a.id=b.id 但它只适用于条件匹配的行,而不适用于所有数据。我如何更新所有这些内容?使用MERGE语句 MERGE cmi.sourav_test_bq_mg b USING cmi.sourav_test_bq_mg_2 a ON a.id=b.id WHEN MATCHE

我已经试过了:

update `cmi.sourav_test_bq_mg` b 
set b.name=a.name 
from `cmi.sourav_test_bq_mg_2` a 
where a.id=b.id 

但它只适用于条件匹配的行,而不适用于所有数据。我如何更新所有这些内容?

使用
MERGE
语句

MERGE cmi.sourav_test_bq_mg b 
  USING cmi.sourav_test_bq_mg_2 a 
  ON a.id=b.id
WHEN MATCHED THEN UPDATE SET b.name=a.name 
WHEN NOT MATCHED THEN
INSERT(id,name) VALUES (id,name)

如果您指的是配置单元插入覆盖,则可以创建一个多sql解决方案,如

  • 从表中删除或截断
  • 在表
    cmi.sourav\u test\u bq\u mg
    a中插入从
    cmi.sourav\u test\u bq\u mg\u 2
    [过滤逻辑]

  • 插入覆盖?你的意思是升级还是更新?所以如果我理解正确,你可以将所有数据插入a到b中。如果b中已存在一行,则覆盖该行的名称;否则,只需插入行即可。不确定您可以通过一个查询来完成此操作。删除b中第一行中的行,并插入a中的所有行?两个查询。我们不能用一个查询吗?合并只对源和目标中的行的1:1数据有效,但插入覆盖没有此限制