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

Databricks Merge报错及视图转Delta表、建表无结果问题求助

问题解决步骤

1. 关于CREATE TABLE ... AS SELECT显示“Query returned no results”的说明

这个提示完全正常,CREATE TABLE AS SELECT(CTAS)语句的作用是创建表并将查询结果写入该表,本身不会返回查询数据。你需要执行以下语句验证表是否成功创建并包含数据:

SELECT * FROM basef1area.races_delta LIMIT 10;

2. 将视图转为Delta表的正确流程

步骤1:确认目标对象类型

先确认basef1area.races是视图,执行:

DESCRIBE EXTENDED basef1area.races;

查看输出中的Type字段,确认是VIEW。

步骤2:直接从视图创建Delta表

不需要先创建普通表再转换,用CTAS语句直接生成Delta格式的物理表:

CREATE TABLE basef1area.races_delta
USING DELTA
AS SELECT * FROM basef1area.races;

这条语句会自动完成数据落地,并创建Delta格式的表。

可选:若已创建普通表,转为Delta表

如果之前已经用不带USING DELTA的语句创建了普通表,执行以下语句转换为Delta表:

CONVERT TO DELTA basef1area.races_delta;

⚠️ 注意:CONVERT TO DELTA仅支持物理表,不支持视图,这也是你之前执行该语句报错的原因。

3. 修复MERGE操作

将MERGE的目标替换为刚创建的Delta表,执行:

CREATE OR REPLACE TEMP VIEW rs AS
SELECT *, ROW_NUMBER() OVER (ORDER BY rand()) AS seq
FROM basef1area.drivers;

MERGE INTO basef1area.races_delta AS t
USING rs
ON t.race_ID = rs.seq
WHEN MATCHED THEN
  UPDATE SET t.reject_reason = rs.driver_ID;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 06:35:02