我有一个场景,我需要生成以下格式的批号(主键)。
批号: ( XX ) ( XXXXX ) 位置顺序
Eg: 0100001
0100002
0200001
0100003
0200002
.......
每个批次的序列从 00001 开始。但是,我们不能有一个序列号生成器来执行此操作。我脑海中可能的解决方案是:
- 创建一个包含数字的额外表。但是有可能多个用户获得相同的序列,因为可能存在未提交的事务。
- 每次保存实体时,我们都会从该列中获取 max(substring(batchnum,2)) 并添加 +1。但这会对性能造成非常巨大的过载,并且还会出现多个用户获得相同序列的问题。