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

在Snowflake SQL脚本中如何获取自增字段值?

在Snowflake中执行INSERT后获取自增字段值

在Snowflake里,要在INSERT操作后立即获取生成的自增字段值,可以使用IDENTITY_VAL_LOCAL()函数,这个函数会返回当前会话中最近一次INSERT语句生成的自增(IDENTITY/AUTOINCREMENT)字段值。

针对你的示例代码,修改如下:

CREATE TEMPORARY TABLE MY_TABLE(TOTO STRING, NEWID BIGINT AUTOINCREMENT NOT NULL);

EXECUTE IMMEDIATE $$
BEGIN
  INSERT INTO MY_TABLE(TOTO) VALUES ('HELLO WORLD');
  -- 获取最后生成的自增NEWID并返回
  RETURN IDENTITY_VAL_LOCAL();
END;
$$;

注意事项

  • IDENTITY_VAL_LOCAL()仅返回当前会话内的最后一个自增值,跨会话无法获取其他会话生成的值。
  • 如果一次INSERT操作插入多行数据,该函数返回的是此次插入中生成的最后一个自增值。
  • 这个函数适用于定义为AUTOINCREMENT或IDENTITY类型的字段,两者在Snowflake中是等价的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:12:00