要在BigQuery中更新表中已更改/删除的记录,可以使用以下步骤和代码示例:
CREATE TABLE
语句创建一个新的目标表,用于存储已更改/删除的记录。CREATE TABLE project.dataset.target_table
(
id INT64,
name STRING,
action STRING -- 用于存储操作类型,例如 'update' 或 'delete'
);
MERGE
语句将源表中的更改/删除记录插入到目标表中。MERGE INTO project.dataset.target_table AS target
USING (
SELECT
id,
name,
'update' AS action -- 标记为更新操作
FROM
project.dataset.source_table
WHERE
-- 添加适当的过滤条件,以仅选择更改的记录
) AS source
ON target.id = source.id
WHEN MATCHED THEN
UPDATE SET
target.name = source.name,
target.action = source.action
WHEN NOT MATCHED THEN
INSERT (id, name, action)
VALUES (source.id, source.name, source.action);
请注意,上述代码中的project.dataset.target_table
和project.dataset.source_table
需要替换为实际的目标表和源表的名称。
此解决方案使用MERGE
语句将源表中的更改/删除记录与目标表进行合并。如果源表中的记录与目标表中的记录匹配,则进行更新操作,否则进行插入操作。
通过将源表中的记录标记为操作类型(例如'update'或'delete'),您可以在目标表中存储有关每个更改的附加信息。
希望这可以帮助您解决问题!