mysql 生成流水号每天更新从0开始
来源:互联网 发布:减肥变速跑和慢跑知乎 编辑:程序博客网 时间:2024/06/06 00:40
经过总结生成流水号主要分为四步骤:
说明:第一需要建一张序列表,第二新建事件每天定时清空序列,第三新建自增函数,第四新建生成序列规则sql函数。
一、第一步新建序列表。
说明:共有四个字段,序列名,当前值,每次自增数量,备注(可有可无)。
说明:这里每次自增为1
二、第二新建事件每天定时清空序列。
说明:这里的事件是用工具建成(mysql navicat ),并不是SQL生成的。
注意:新建事件前需要先开启事务,定时开启在最后总结部分,请先阅读。
UPDATE sequence
SET current_value = 0
WHERE name = 'test_trans_no'
说明:定义开始时间,day 为天,一天执行一次。
三、第三新建自增函数,让序列valu值每次加上增量值。
begin
UPDATE sequence SET current_value=last_insert_id(current_value+increment) WHERE name=seq_name;
RETURN last_insert_id();
end
说明:红色部分是传入的参数,这是个公共的方法。
四、第四新建生成序列规则sql函数。
说明:这里调用了自增函数nextval('test_trans_no')就是上面定义的方法。
BEGIN
DECLARE svalue varchar(32);
SET svalue = (select concat(replace(DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'),'-',''),LPAD((SELECT nextval('test_trans_no')), 5, '0')));
RETURN svalue;
END
注意:红色部分是返回定义的参数,容易出现类型错误。
五、总结:
查看当前是否已开启事件计划(调度器)有3种方法:
[sql] view plaincopy在CODE上查看代码片派生到我的代码片
SHOW VARIABLES LIKE 'event_scheduler';
SELECT @@event_scheduler;
SHOW PROCESSLIST;
开启事件计划(调度器)开关有4种方法:
[sql] view plaincopy在CODE上查看代码片派生到我的代码片
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;
SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
键值1或者ON表示开启;0或者OFF表示关闭;
如果不需要每天从0开始可以直接使用sql解决,select concat('T',replace(DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'),'-',''),'001');
说明:有的地方有图片的,发布后看不到了,有问题直接回复。
完结。。
- mysql 生成流水号每天更新从0开始
- 每天生成流水码
- oracle 储存过程 每天凌晨 更新sequence 从0 开始
- 利用mysql触发器生成流水号
- 利用mysql触发器生成流水号
- MYSQL 存储过程 生成唯一流水号
- 从今天开始每天更新-----------fwqlzz love is for ever
- mysql实现单据流水号每天自动清零
- 努力,从每天开始
- mysql从0开始
- Oracle 存储过程删除和新增序列解决流水号每天重新开始
- 手工生成流水号
- SQL生成流水号
- ------------------------生成流水号--------------------------------
- SQL生成流水号
- C#生成流水号
- 生成流水号
- sql 生成流水号
- BGP的13条选路原则
- 2015 多校联赛 ——HDU5294(最短路,最小切割)
- 杭电1950 Bridging signals(求一个数列的最大递增子数列)
- 记录Uniyt3d Shader的几个用法
- UNIX 系统家族树的详细历史(图)
- mysql 生成流水号每天更新从0开始
- PAT (Advanced Level) 1087. All Roads Lead to Rome (30) 条条大路通罗马 Dijkstra+DFS
- 读书笔记MoreEffectiveC++(34)
- [BZOJ1054][HAOI2008]移动玩具
- nyoj 214 单调递增子序列(二) 【LIS】
- HDU 5327 区间里由不同的数字组成的数的个数-set-(枚举)
- 九度oj 1198
- 使用 Gradle 构建工具实现 Spring 集成 MyBatis (使用 Java 注解方式)
- 字符串反转(java实现)