字符串id生成示例
来源:互联网 发布:推广平台源码 编辑:程序博客网 时间:2024/05/29 16:19
博客http://www.cnblogs.com/haoxinyue/p/5208136.html中详细介绍了各算法及其优缺点,这里说一种比较简单的,有点类似文章中的snowflake算法,id组成为:标识符+年月日+序号,例如15位id表示为:“A20171102000001”,用一张表记录当前要生成id的业务的序号,表名:date_sequence,字段主要有三个:code,produce_date,num,code用来标识哪个业务模块的id,num表示该id目前的序号为多少,没产生一次id,该序号加一,这个表使用code和produce_date作为联合主键。此时的sql语句可以使用merge实现
<select id="getNextSequence" resultMap="BaseResultMap">merge into date_sequence as dest using (values(#{code},convert(varchar(8),getdate(),112),1)) as src (code, producedate, num) on src.code = dest.code and src.producedate = dest.producedate when matched then update set dest.num= dest.num + 1 when not matched then insert (code, producedate, num) values (src.code, src.producedate,src.num) output inserted.Code,inserted.produceDate,inserted.num;</select>
不足之处:从示例”A20171102000001”可以看出,每天只能产生999999条id,当业务量大时可能不满足需求,可以增加序号的位数,或者根据链接中的其他算法产生。
阅读全文
0 0
- 字符串id生成示例
- java随机生成字符串,用于设定表的主键id
- 生成id
- ID生成
- 递归函数应用:根据树结点id,结点内容,父结点id,生成XML格式字符串
- Hibernate学习-用oracle sequence序列生成ID的配置示例
- 对象ID:生成id,还是hash id?
- 字符串示例
- ibatis 处理生成 ID
- JPA ID生成策略
- JPA ID生成策略
- 生成单据ID
- C# 生成唯一ID
- JPA ID生成策略
- Hibernate ID 生成策略
- 生成唯一的ID
- hibernate id 生成策略
- ORACLE 触发器生成id
- 使用反射获取Spring的Bean
- 计组第一步_时序电路
- 梦中不知岁已老,朦胧人间谁登高
- Android开发——Android中常见的4种线程池(保证你能看懂并理解)
- js闭包
- 字符串id生成示例
- STM32 PWM调制信号关闭后端口电平不确定处理
- Tetris_Java(I)千里之行始于足下
- Parallel&Distributed Algorithm-1
- 每天一道LeetCode-----某个数在递增序列第一次和最后一次出现的位置
- AFN提交类型和回应类型
- SpringBatch配置多线程step
- JavaWeb框架-【Hibernate+Struts2】-框架世界的联手-图书管理系统
- LLVM学习笔记(21)