在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
相关产品推荐
相关产品推荐

