关于自动编号,结合了论坛各位大神的杰作和思路,参考实际情况,现归纳如下,希望对各位有所帮助
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,如无每秒几百的并发应该没有问题,单不是绝对
附图中两个编号相同,是一张单据编号的两条记录,不要误会
希望对你们有所帮助
|