使用表的id+随机数做不重复的订单号

Posted wyf-love-dch

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用表的id+随机数做不重复的订单号相关的知识,希望对你有一定的参考价值。

用于分布式情况下的订单号的创建:

创建表:

  

CREATE TABLE `shop_uuid_18` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `addTime` datetime DEFAULT NULL,
  `deleteStatus` bit(1) NOT NULL DEFAULT b0,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=132655 DEFAULT CHARSET=utf8;

 你的订单想从哪开始就将sql中 

AUTO_INCREMENT=132655 修改值就行

2.生成唯一的订单号:
UUID18 uuid18 = new UUID18();
uuid18Service.save(uuid18);
String random =   (int)((Math.random()*9+1)*10)+"";
String orderNo = uuid18.getId() + random; //就是符合要求的定单号

 

以上是关于使用表的id+随机数做不重复的订单号的主要内容,如果未能解决你的问题,请参考以下文章

推广项目难点之数据随机分发

使用mysql设计一个全局订单生产计数器

java怎么生成一个唯一的只有数字的订单号

记一次订单号事故

订单号生成规则

mysql 利用唯一索引Unique 高并发创建不重复唯一订单号是不是和兴?