MySQL在插入之前按月或按字段值重置自动增量ID

时间:2019-01-15 10:16:00

标签: mysql max auto-increment reset id

以前,我将ID序列化设置在后面,但将静态序列化设置在ID前面。 我将ID设置如下:

SELECT CONCAT('A',DATE_FORMAT(NOW(),'%y'),
  LPAD(right(regist_ID,5)+1,5,'0')) as regnum 
FROM media_use
WHERE regist_ID like CONCAT('A',DATE_FORMAT(NOW(),'%y'),'%') 
ORDER BY regist_ID

然后

INSERT INTO .....

结果为A1800001,如果使用SELECT检查后插入新数据,则ID后5位将自动递增。然后在2019年更改为A1900001。我的问题是,我们需要将ID码更改为部门代码,并根据部门和月份重新设置编号。

Demo

例如表中提供了代码MA-0119-001,但在新代码后面插入了3位而不是+1。因此,代码重复。插入后的结果必须为:

|regist_ID   |
+------------+
|MA-0119-001 |
|MA-0119-002 | //result after +1
|ENG-0119-001| //reset no. due different dept name
|MA-0219-001 | //reset no. due different month

0 个答案:

没有答案