关于自动编号的实现

楼主
山西省晋中市榆次区龙湖大街229号天缘大厦17楼
关于自动编号,结合了论坛各位大神的杰作和思路,参考实际情况,现归纳如下,希望对各位有所帮助

CONCATENATE("编号前缀",replace(today(),"-","") * 10000 + sql("数据连接","select right(max(编号字段),4)+1 from 表名称 where left(right(编号字段,12),8) = '" + replace(today(),"-","") + "'",1,1))


编号前缀:可以随便写,不限位数   如:ABC   ABGF  。。。
以当前日期为编号归零的界限,如:ABC201805170001  ABC201805170002 ABC201805180001.。。。
实际编号位数为四位,即0001--9999,这是一天的个数,如不足请自行增加位数,只需简单的修改,如修改成五位:则为

CONCATENATE("编号前缀",replace(today(),"-","") * 100000 + sql("数据连接","select right(max(编号字段),4)+1 from 表名称 where left(right(编号字段,13),8) = '" + replace(today(),"-","") + "'",1,1))


关于并发:编号在数据提交时生成,取数据库中前缀和日期相同编号的最大值,然后加1,如无每秒几百的并发应该没有问题,单不是绝对

附图中两个编号相同,是一张单据编号的两条记录,不要误会

希望对你们有所帮助
分享扩散:
参与人数 +1 F豆 +1 理由
UPJks7TH + 1

查看全部评分

沙发
发表于 2018-5-18 15:34:58
附图中两个编号相同,是一张单据编号的两条记录,不要误会
板凳
发表于 2018-5-18 16:24:22
适用于单条记录维护的业务场景,并不能满足批量维护的情形
地板
发表于 2018-5-18 17:02:19
已提名精华帖,待论坛运营委员会评分后可评为精华帖,帆软论坛精华帖奖励计划http://bbs.fanruan.com/thread-91079-1-1.html
5楼
发表于 2018-5-18 18:14:42
来自手机
用触发器
6楼
发表于 2018-9-4 19:08:10
不好意思,打扰一下,请问“数据连接”这个怎么操作?
7楼
发表于 2018-9-27 08:14:49
8楼
发表于 2020-3-26 23:58:48
为什么我的编号不会自动变数啊!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部 返回列表