Snowflake生成起始为0000001的递增序列列问题
Snowflake生成带前导零的递增序列解决方案
先创建指定起始值和步长的Sequence
Sequence本身存储数值类型,起始值1、步长1对应你要的0000001、0000002的数值基础,前导零通过后续格式化实现:CREATE OR REPLACE SEQUENCE seq1 START = 1 INCREMENT = 1;修正测试代码并生成格式化序列
补充Sequence创建步骤,同时用LPAD函数将序列值格式化为7位带前导零的字符串:DROP TABLE IF EXISTS foo; CREATE OR REPLACE TABLE foo (n NUMBER); INSERT INTO foo VALUES (100), (101), (102); SELECT n, LPAD(seq1.nextval, 7, '0') AS RecordID FROM foo;核心说明
- Sequence仅存储数字,无法直接生成带格式的字符串,
LPAD(值, 长度, 填充字符)是实现前导零的关键 - 如果需要将格式化后的序列持久化到表中,可在插入语句中直接使用
LPAD(seq1.nextval,7,'0')作为字段值
- Sequence仅存储数字,无法直接生成带格式的字符串,
内容的提问来源于stack exchange,提问作者user2466009
相关产品推荐
相关产品推荐

