社区
MySQL
帖子详情
MYSQL生成日期+序号的流水号
PQianbei
2014-09-13 09:47:42
根据当前日期自动生成递增的productID:
20140913001
20140913002
20140914001
按照论坛上另外一个帖子上写的触发器:
set new.productID=CONCAT(DATE_FORMAT(CURDATE(),'%Y%m%d'),RIGHT(CONCAT('00',LAST_INSERT_ID()+1),3))
但是每次都生成的是20140913001
请问该作何修改。
表结构如下:
...全文
2699
6
打赏
收藏
MYSQL生成日期+序号的流水号
根据当前日期自动生成递增的productID: 20140913001 20140913002 20140914001 按照论坛上另外一个帖子上写的触发器: set new.productID=CONCAT(DATE_FORMAT(CURDATE(),'%Y%m%d'),RIGHT(CONCAT('00',LAST_INSERT_ID()+1),3)) 但是每次都生成的是20140913001 请问该作何修改。 表结构如下:
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
梓羿
2014-10-08
打赏
举报
回复
同求这个问题,字符+年月+后四位自增流水号如: ABC14100001 ABC14100002 ABC14100003 这种如何实现呢? concat('ABC','date_format(now(),'%y-%m')','0001');
chengchow2001
2014-09-28
打赏
举报
回复
LZ这做法行不通的,这么做需要每执行次insert之前都运行下set ...
PQianbei
2014-09-13
打赏
举报
回复
貌似还是不行呢。请看看
trainee
2014-09-13
打赏
举报
回复
不能照搬别人的语句啊。 last_insert_id() 是返回当前进程中最近的一条插入语句 (表中自增性字段的值)。 如果当前进程没有插入动作, 或者插入的表没有自增性字段,last_insert_id()返回0 用此方法, 是无法保证从001开始, 也无法保证中间能连续。 保险点,自行写存储过程,大概流程如下 start transaction SELECT max(PRODUCTID) FROM XXX WHERE PROCDICID LIKE ‘20140913%’
FOR UPDATE
如果 没有记录 为 001 否则 +1 ..... commit
ACMAIN_CHM
2014-09-13
打赏
举报
回复
用
日期+自动编号
定义为主键。 create table x ( d date, no int auto_increment, primary key(d,no)
ACMAIN_CHM
2014-09-13
打赏
举报
回复
引用 3 楼 jaredlong 的回复:
貌似还是不行呢。请看看
结果什么产?插入几条试试。
Oracle/
MySQL
以当前
日期
加顺番
生成
编号
//
生成
最大编号 规则为当前
日期
+6位顺番, //没有记录时,当前
日期
+000001 //当前
日期
比从数据库取得的最大
日期
大时, 当前
日期
+000001 //当前
日期
等于从数据库取得最大
日期
,顺番+1
JAVA版本的
生成
唯一编号
/** * 获得序列号,同时更新持久化存储中的序列 * @param current 当前的
日期
* @param start 初始化的
序号
* @return 所获得新的序列号 */ protected abstract int getOrUpdateNumber(Date current, int start);
.net实现新增数据时编号自动加一
编号格式比较自增
通用权限管理说明书
本软件主要是为了实现一个可以高度重复利用劳动成果的工具软件,可供国内管理类开发人员在日常工作中进行灵活二次开发利用的模块,开发管理类软件的必备工具之一,模块能提高管理类软件系统的整体质量、提高模块与模块之间的兼容性、提高代码的重复利用率,能够使软件系统架构更加合理、质量更加过硬。从而使得劳动成果最 大程度上重复利用。
MySQL
触发器自动
生成
自定义编码:字母+年月日+
流水号
类型:字母+年月日+
流水号
触发器设置: 具体代码(和上面的有点区别,以下面的为准): -- 例:tp220127001 tp-年份后两位-月-日-三位数的
流水号
BEGIN -- PART1:声明各个变量 DECLARE currentdate varCHAR (8) ; -- 当前
日期
DECLARE maxNo INT DEFAULT 0 ; DECLARE oldNo VARCHAR (11) DEFAULT '' ; -- 此处的字符长度必须和要
生成
的目标编码的长度一致
MySQL
56,803
社区成员
56,752
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章