最近有一個需求,要求對某些數(shù)據(jù)的數(shù)據(jù)庫主鍵id格式化,要求id為(202311080000)的形式去自增,可以在get請求獲取到這些數(shù)據(jù)時在請求路徑上看到格式化的id,但是之前數(shù)據(jù)id有大于202311080000數(shù)值的,導(dǎo)致自增的主鍵值并沒有生效(即使刪除相關(guān)數(shù)據(jù))
如何自定義自增主鍵值
第一種通過命令
alter table table_name auto_increment = 1
第二種使用navicat直接設(shè)置
選中表右鍵設(shè)計表,找到選項,在自定遞增處即可自定義自增值,設(shè)置完成ctrl+s保存
注意:
此時表中不能存在id大于自定義值的數(shù)據(jù),否則會不生效
遇到的坑
完成上述設(shè)置后我去調(diào)接口新增,在數(shù)據(jù)庫查看發(fā)現(xiàn)新增的數(shù)據(jù)id還是以之前的大id自增的,也就是說自定義的自增id并沒有設(shè)置成功,我的第一反應(yīng)是不是設(shè)置的沒有生效,用下面兩個命令去查了下該表的下一個自增值
SHOW table STATUS LIKE 'table_name'
?
select auto_increment from information_schema.tables where table_schema='庫名' and table_name='表名';
結(jié)果都顯示為null,這個問題后面也沒百度到,如果有大佬知道望解答。后面我在數(shù)據(jù)庫寫了一條insert語句,發(fā)現(xiàn)插入的id是我設(shè)置的自定義id,所以自定義id是生效的,那么問題就一定是出現(xiàn)在程序里了,這里我想到了是不是實體類沒有定義好id
文章來源:http://www.zghlxwxcb.cn/news/detail-851897.html
查看后,果然沒有定義自增,加上 type = IdType.AUTO 問題解決文章來源地址http://www.zghlxwxcb.cn/news/detail-851897.html
到了這里,關(guān)于mysql如何自定義自增主鍵值,以及所遇到的不生效問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!