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

Snowflake如何同时插入默认值与OBJECT_CONSTRUCT构造的对象?

解决Snowflake插入默认IDENTITY值与构造对象的问题

方案1:省略IDENTITY列直接插入

因为id是IDENTITY(1,1)类型,插入时如果不指定该列,Snowflake会自动生成递增数值,无需显式传入DEFAULT。可以用以下两种写法:

使用VALUES子句

INSERT INTO scenarios (information)
VALUES (object_construct('type','new','size','medium'));

使用SELECT子句

INSERT INTO scenarios (information)
SELECT object_construct('type','new','size','medium');

方案2:显式指定IDENTITY列的兼容写法

如果必须显式写出id列,可以通过子查询允许使用DEFAULT的特性,结合主查询构造OBJECT数据:

INSERT INTO scenarios (id, information)
SELECT v.id, object_construct('type','new','size','medium')
FROM VALUES(DEFAULT) v(id);

这种写法既满足了id列使用默认值的需求,又能正常调用object_construct函数生成OBJECT类型数据。

验证结果

执行上述语句后,查询表数据:

SELECT * FROM scenarios;

会得到如下类似结果:

IDINFORMATION
1{ "type": "new", "size": "medium" }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 17:59:56