组合 Bigquery 删除和插入语句

2024-02-01

Bigquery 有没有办法结合DELETE and INSERT语句合二为一

DELETE `my_project.my_dataset.demo` 
WHERE date = CURRENT_DATE()

INSERT INTO `my_project.my_dataset.demo` 
SELECT * FROM `my_project.my_dataset.my_source` 
WHERE date = CURRENT_DATE()

有什么语句可以将上述两个 DML 合二为一吗?


MERGE:

  • https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax#merge_statement https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax#merge_statement

MERGE 语句是一种 DML 语句,可以将 INSERT、UPDATE 和 DELETE 操作合并到单个语句中并以原子方式执行操作。

在以下示例中,NewArrivals 表中的所有产品都替换为子查询中的值。 INSERT 子句不为目标表或源子查询指定列名。

MERGE dataset.NewArrivals
USING (SELECT * FROM UNNEST([('microwave', 10, 'warehouse #1'),
                             ('dryer', 30, 'warehouse #1'),
                             ('oven', 20, 'warehouse #2')]))
ON FALSE
WHEN NOT MATCHED THEN
  INSERT ROW
WHEN NOT MATCHED BY SOURCE THEN
  DELETE
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

组合 Bigquery 删除和插入语句 的相关文章

随机推荐