选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

MERGE INTO

聚焦模式
MERGE INTO - Amazon Athena

有条件地更新行、删除行或将行插入到 Apache Iceberg 表中。单个语句可以组合更新、删除和插入操作。

注意

MERGE INTO 是事务性的,仅支持用于 Athena 引擎版本 3 中的 Apache Iceberg 表。

摘要

要从 Iceberg 表中有条件地更新、删除或插入行,请使用以下语法。

MERGE INTO target_table [ [ AS ] target_alias ] USING { source_table | query } [ [ AS ] source_alias ] ON search_condition when_clause [...]

when_clause 是以下语法之一:

WHEN MATCHED [ AND condition ] THEN DELETE
WHEN MATCHED [ AND condition ] THEN UPDATE SET ( column = expression [, ...] )
WHEN NOT MATCHED [ AND condition ] THEN INSERT (column_name[, column_name ...]) VALUES (expression, ...)

MERGE 支持任意数量的具有不同 MATCHED 条件的 WHEN 子句。条件子句会执行 MATCHED 状态和匹配条件所选择的第一个 WHEN 子句中的 DELETEUPDATEINSERT 操作。

对于每个源行,WHEN 子句会按顺序处理。仅执行第一个匹配的 WHEN 子句。后续子句将忽略。如果单个目标表行与多个源行匹配,会引发用户错误。

如果源行与任何 WHEN 子句均不匹配且没有 WHEN NOT MATCHED 子句,则会忽略源行。

在具有 UPDATE 操作的 WHEN 子句中,列值表达式可以引用目标或源的任何字段。如果是 NOT MATCHED 字句,INSERT 表达式可以引用源的任何字段。

示例

如果第一个表中不存在行,则以下示例会将第二个表中的行合并到第一个表中。请注意,VALUES 子句中列出的列必须以源表别名为前缀。INSERT 子句中列出的目标列不得以此为前缀。

MERGE INTO iceberg_table_sample as ice1 USING iceberg2_table_sample as ice2 ON ice1.col1 = ice2.col1 WHEN NOT MATCHED THEN INSERT (col1) VALUES (ice2.col1)

有关更多 MERGE INTO 示例,请参阅 更新 Iceberg 表数据

本页内容

下一主题:

OPTIMIZE

上一主题:

UPDATE
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。