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(使用前将#替换为@)