You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake中能否不使用MERGE语句,仅用INSERT实现不存在则插入?

能否用INSERT语句替代MERGE实现仅插入不存在load_id的行?

原MERGE语句的作用是对比stg.my_table和stg.my_view的load_id,仅向目标表插入那些load_id不存在的新行。

当然可以只用INSERT语句实现完全相同的效果,借助INSERT ... SELECT搭配NOT EXISTS子查询即可,具体写法如下:

INSERT INTO stg.my_table (id, document_type, state, publication_date)
SELECT src.id, src.document_type, src.state, src.publication_date
FROM stg.my_view AS src
WHERE NOT EXISTS (
    SELECT 1
    FROM stg.my_table AS tgt
    WHERE tgt.load_id = src.load_id
);

这段代码的逻辑和原MERGE完全一致:通过NOT EXISTS子查询校验视图中的每一行load_id是否已存在于目标表,只有不存在匹配load_id的行才会被插入到stg.my_table中。

内容的提问来源于stack exchange,提问作者x89

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 12:15:25