数据库自动生成编号SQL

本文探讨了两种数据库编号生成规则:一种不支持用户修改,通过预设的SQL语句生成;另一种支持用户修改,能根据数据库中已存在的最大编号进行递增生成。文中提供了MySQL和Oracle的实现方式。

1、不支持修改编号的生成规则:

select 
	concat('371072',date_format(now(),'%Y'),'1',right(concat('000',ifnull(count(1)+1,'')),3)) AS "plantNumber" 
from 
    scjg_spot_check_plan a 

oracle版:

select 
'部门编号'||to_char(sysdate,'yyyyMMdd')|| substr(concat('000000',nvl(count(1)+1,'')),length(count(1)+1)+1) as dasda
from wx_record_query

 

2、支持用户修改编号的生成规则:

select 
			concat('371072',date_format(now(),'%Y'),'1',right(concat('000',ifnull(count(1)+1,'')),3)) AS "plantNumber" 
		from 
			scjg_spot_check_plan a 

union
select 
concat('371072',date_format(now(),'%Y'),'1',right(concat('000',ifnull(max(right(plant_number,3))+1,'1')),3)) 
		from 
			scjg_spot_check_plan a

如果用户修改编号,当前SQL语句会返回2条结果,选择第二条即可.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值