MySQL 基於資料庫的號碼自增生成實踐

2021-09-09 04:57:55 字數 672 閱讀 9556

需求:生成指定規則遞增的號碼:年月日+當天的第幾個,如: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...