需求:生成指定規則遞增的號碼:年月日+當天的第幾個,如:201901140001,即209年1月14日哪一天的第乙個號碼,
關鍵點1 獲取當天的號碼個數、
2 加0處理,如當天第乙個,即0+1=1.加0,則為0001,保持四位。採用lpad函式。
測試表
create table `test01` (
`id` int(11) not null auto_increment,
`number` varchar(255) default null,
`create_date` datetime default null,
primary key (`id`)
) engine=innodb auto_increment=6 default charset=utf8;
sql
select
concat(date_format(curdate(),'%y%m%d'),lpad((select count(*) from test01 where 1=1 and substring(number,1,8)=date_format(curdate(),'%y%m%d'))+1,4,0)) as n
當天乙個為201901140001,第二個為:201901140002
參考:
oracle資料庫自增
1 建立sequence create sequence seq seq1 minvalue 1 maxvalue 99999999999999 start with 1 increase by 1 chache 20 如果指定cache值,oracle就可以預先在記憶體裡面放置一些sequence...
資料庫自增型別
from 一 通過t sql 複製 如下 alter table 表名 add 列名 int identity 1,1 not null 這裡用到了identity關鍵字 indentity a,b a b均為正整數,a表示開始數,b表示步長,indentity 1,1 就代表從1開始,每次增加1 ...
mysql資料庫中自增ID不自增1的解決辦法
原鏈結 mysql資料自增id為2的解決辦法 1.檢視配置 show variables like increment 如上,如果auto increment increment和auto increment offset不為1,就需要重新設定一下這兩個值了。2.修改auto increment i...