求一个按年月日流水号格式生成订单号的的存储过程

lshfong 2014-03-17 01:49:38
如这种格式:201403170001,201403170002
...全文
370 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
知道就是你 2014-03-18
  • 打赏
  • 举报
回复
select concat(DATE_FORMAT(CURDATE(),'%Y%m%d'),'0001') from dual ; 有两部分组成: DATE_FORMAT(CURDATE(),'%Y%m%d') (年月日) + '0001' (流水号) 如果使用存储过程生成 : 需要先获取到数据库表中的最大的 订单号 ,判断 ,截取前8位 是否与 DATE_FORMAT(CURDATE(),'%Y%m%d')值相同 ,如果相同则直接转换为int 类型并对值加1 ,如果不相同,则直接使用 concat(DATE_FORMAT(CURDATE(),'%Y%m%d'),'0001')初始化 。 个人建议 :直接使用 DATE_FORMAT(CURDATE(),'%Y%m%d') (年月日) + 4位随机数字 岂不是更简单 ? select concat(DATE_FORMAT(CURDATE(),'%Y%m%d'),ROUND(ROUND(RAND(),5)*10000)) from dual ;
ACMAIN_CHM 2014-03-17
  • 打赏
  • 举报
回复
引用 楼主 lshfong 的回复:
如这种格式:201403170001,201403170002
建议楼主先尝试自己写一下,然后有任何问题可以把自己写的代码和问题一起贴出共同讨论。
benluobo 2014-03-17
  • 打赏
  • 举报
回复
是否是根据时间随机生成一个唯一的订单号?
wwwwb 2014-03-17
  • 打赏
  • 举报
回复
思路: 用1个表保存流水号,取值时,锁表->取值->+1保存->释放锁

56,875

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧