关闭

java配合mysql生成序列号

标签: java数据库mysql存储序列号
322人阅读 评论(0) 收藏 举报
分类:

java配合mysql生成序列号


1.第一步创建数据库存储过程
a.进程名:currval

BEGIN
DECLARE val BIGINT;
  set val = 0;
  select current_val into val from t_bas_sequence
  where seq_name = v_seq_name;
RETURN val;
END


-------------------------------------------------------------------------------------------------------------------------------------

b.进程名:nextval
BEGIN
  DECLARE val BIGINT;
  DECLARE increment int;
   set val = currval(v_seq_name),increment = 0;
  SELECT increment_val into increment from t_bas_sequence
   where seq_name = v_seq_name;
   UPDATE t_bas_sequence
   set current_val = current_val + increment_val*count
   where seq_name = v_seq_name;
 RETURN val+increment;
END



---------------------------------------------------------------------------------------------------------------------------------------

2.第二步创建数据库序列表

CREATE TABLE `t_bas_sequence` (
  `seq_name` varchar(64) NOT NULL DEFAULT '',
  `current_val` bigint(20) DEFAULT '0',
  `increment_val` int(11) DEFAULT '1',
  PRIMARY KEY (`seq_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT;



1.第一步创建数据库存储过程
1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

mysql 生成流水号 存储过程 订单编号

用存储过程生成流水号是很常用的,这里以生成订单编号的流水号作为示例。(新的一天的流水号从1开始,如:今天的订单编号是CD2013010900014,下一个订单编号将是CD2013010900015;明...
  • dengsilinming
  • dengsilinming
  • 2013-01-10 10:53
  • 31221

数据库唯一序列号生成方案

首先,我们得知道为什么需要制定数据库唯一序列号生成方案,难道MySQL的主键自增长不好用吗?当然不是。由于现在的业务数据量越来越大,有时候将数据放在一张表里,压力非常大,所以要进行分库分表。一旦进行了...
  • JobsandCzj
  • JobsandCzj
  • 2017-12-22 14:49
  • 136

流水号的生成(日期+业务码+自增序列)

项目开发时,使用了两套数据库,开发环境和上线环境,数据库表中大多采用了自增主键, 比如:id int unsigned primary key auto_increment,但往往会碰到一些问题,比...
  • u010786672
  • u010786672
  • 2015-06-29 12:01
  • 6676

唯一序列号生成,自测支持高并发,不支持集群

序列号组成:前缀 + 日期 + 尾数  例如:ZC20140806000001 总共两个组成:一个枚举类,一个静态生成器,另外需要设计自动任务每日凌晨或其他时间重置一次尾数。 先上枚举类...
  • guxing820
  • guxing820
  • 2014-08-06 17:02
  • 1622

MySQL 序列生成函数

由于效率上的需求,我们需要批量入库。 我们有个业务表,分成了主表tab和详情表tab_detail。以前的做法需要一条一条插入,主键自增序列自动生成,并且每次插入后再利用last_insert_id这...
  • gua___gua
  • gua___gua
  • 2015-08-10 14:33
  • 1225

java项目实现流水号自动增长-2-分布式环境

1、上一篇说的流水号自动增长,存在两个问题,第一如果编号是字母+数字格式的,数字自增可以使用AtomicInteger实现,但是与字母组合拼接肯定是一个非原子、非线程安全的,可以通过线程同步实现;第二...
  • javaloveiphone
  • javaloveiphone
  • 2017-04-08 16:06
  • 1597

java RSA加密生成license,用CPU序列号生成机器码

license里就是一些注册信息,键值对组成的字符串 对称加密:DES,AES,加密解密都用一个秘钥,速度快非对称机密RSA,可以私钥加密公钥解密,也可以公钥机密私钥解密,速度慢注意:RSA加密明文最...
  • zhangdaiscott
  • zhangdaiscott
  • 2017-07-04 17:30
  • 1282

MySQL实现序列(Sequence)效果

MySQL实现序列效果   一般使用序列(Sequence)来处理主键字段,在MySQL中是没有序列的,但是MySQL有提供了自增长(increment)来实现类似的目的,但也只是自增,而不能设置步长...
  • sinat_19351993
  • sinat_19351993
  • 2015-07-31 15:08
  • 20434

生成唯一序列号 Unique ID

程序取号的锁竞争和网络延迟是不可避免的,所以最理想的Unique ID策略还是本地生成:把发号器内嵌到每个程序中,同时保证生成标准的同步。
  • tiwerbao
  • tiwerbao
  • 2016-02-01 11:07
  • 2644

Java生成NO201601270001这样的流水编号

首先从数据库查询出已有的最大编号 拼成NO+当前时间格式的字符串 判断最大编号是否存在,最大编号中是否包含当天时间 如果最大编号不存在,则直接生成第一个编号NO201601270001 如果最大编号存...
  • jianyuerensheng
  • jianyuerensheng
  • 2016-01-27 09:26
  • 6570
    个人资料
    • 访问:1539次
    • 积分:170
    • 等级:
    • 排名:千里之外
    • 原创:15篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类