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

如何在Skyve应用中创建自动生成编号并设置初始值

Skyve自动生成业务编号设置初始值实现方法

存量数据迁移场景下,给Skyve的document-number-pattern设置编号初始值有两种可直接落地的方案,核心目标是让新生成的编号流水号大于存量数据的最大编号,避免唯一标识冲突:

  • 方案1:直接操作内置序列表设置
    Skyve默认把所有文档编号的流水计数存在平台内置的ADM_Sequence数据表中,每条编号规则对应一条记录,核心字段含义:
    • sequenceName:对应编号规则的唯一标识,命名规则固定为模块名.文档名.编号属性名,比如业务请求模块的requestNumber字段,对应名称一般为crm.Request.requestNumber
    • nextNumber:下一次生成编号时使用的流水号数值
      存量数据全量导入完成后,先统计出存量request编号里的最大流水号数值,直接执行SQL把对应记录的nextNumber更新为「最大存量流水号 + 1」即可。
      参考SQL示例:
    UPDATE ADM_Sequence 
    SET nextNumber = 1024 
    WHERE sequenceName = 'crm.Request.requestNumber';
    
    如果你的编号规则带年份、月份这类时间前缀,nextNumber仅对应前缀后面的流水号部分,不需要把前缀的年份数值算进序列值里
  • 方案2:通过官方API在迁移脚本中设置
    如果是写Java迁移逻辑,不需要直接操作数据库,调用Skyve内置的DocumentNumberPattern工具类方法即可完成初始值设置:
    // 第一步:查询存量数据中request编号的最大流水号
    int maxLegacySerialNum = /* 自行实现持久化查询,提取存量编号里的数字流水部分即可 */;
    // 第二步:重置对应编号规则的序列值,参数依次为模块名、文档名、编号属性名、初始流水值
    DocumentNumberPattern.resetSerial("crm", "Request", "requestNumber", maxLegacySerialNum + 1);
    
    该方法会自动更新序列表的对应值,后续业务流程触发编号生成时,会直接从你设置的初始值开始累加。

踩坑提示:resetSerial方法仅适合在一次性迁移脚本中执行,不要在日常业务逻辑里调用,否则会打乱序列计数导致编号重复。设置完成后建议手动生成一条测试request数据,确认编号符合预期、和存量数据连续再切流上线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:03:15