如何设计表并实现以日期年份、月份和自增序号组合成编号作为主键?

编号示例例如:2015010001 2015010002 ....
2015020001 2015020002 ....
要求:表结构中主键字段ID存储该序号,每隔个月序号将从1重新计数。

直接取id最大,可能会出现并发产生相同的编号,效率不高。
请问各位大神有什么好方法?

阅读 7.9k
3 个回答

我的做法是用2个表实现的,另外一个表存储月份的数量,如新增一条记录是往这个表插入一个201501,在插入主表数据时读取月份表中201501的数量然后+1,在和月份组合成新的ID,就会201502001、201502002、201502003、201503001这样了,方法有点笨

主键设为自增 输出当前编号时 用当前id减去上月最后一个的id

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题