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

Snowflake中DELETE+OUTPUT迁移数据报错:unexpected 'DELETED'

Snowflake中DELETE语句使用OUTPUT子句报错的原因及解决方法

你尝试用以下SQL将table_1的数据迁移至已有数据的table_2:

DELETE FROM table_1
OUTPUT DELETED.*
INTO table_2;

执行时触发报错:

SQL compilation error: syntax error line 2 at position 7 unexpected 'DELETED'

报错原因

  • 核心原因:OUTPUT ... INTO是SQL Server专属的语法,Snowflake并不支持该语法结构,因此编译器无法识别DELETED关键字,直接触发语法编译错误。

Snowflake中的替代实现方案

Snowflake中可以通过DELETE的RETURNING子句结合INSERT语句实现相同的迁移+删除逻辑,示例如下:

INSERT INTO table_2
SELECT * FROM (
  DELETE FROM table_1
  RETURNING *
);

如果只需迁移table_1中的特定行,可添加过滤条件:

INSERT INTO table_2
SELECT * FROM (
  DELETE FROM table_1
  WHERE <你的过滤条件>
  RETURNING *
);

也可以拆分两步执行(如需保证操作原子性,可包裹在事务中):

-- 第一步:将table_1数据插入table_2
INSERT INTO table_2
SELECT * FROM table_1;

-- 第二步:删除table_1数据
DELETE FROM table_1;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 19:12:06