在进行 UPDATE 和 MERGE 操作时,所有的源表必须保证只能有一条记录匹配目标表中的每一条记录。否则,会出现更新或合并操作出错的情况。
以下代码示例展示了如何对 BigQuery 中的表执行 MERGE 操作,并保证源表与目标表一一匹配:
MERGE `my-target-table` AS target
USING (
SELECT * FROM `my-source-table`
) AS source
ON target.id = source.id -- 指定匹配条件
WHEN MATCHED THEN
UPDATE SET target.column1 = source.column1, target.column2 = source.column2 -- 指定更新操作
WHEN NOT MATCHED THEN
INSERT (id, column1, column2) VALUES (source.id, source.column1, source.column2); -- 指定插入操作