什么是插入覆盖在bigquery中的工作?

时间:2018-02-09 12:07:04

标签: 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 

但它仅适用于条件匹配的行,而不适用于所有每个数据。我怎样才能更新所有内容?

2 个答案:

答案 0 :(得分:0)

使用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)

答案 1 :(得分:0)

如果您指的是 HIVE Insert Overwrite,则可以创建一个多 sql 解决方案,例如

  1. 从表中删除或截断
  2. INSERT INTO TABLE cmi.sourav_test_bq_mg a select * from cmi.sourav_test_bq_mg_2 [过滤逻辑]