mysql創(chuàng)建表設置表主鍵id從1開始自增的解決方案
一.問題描述
當我們在做項目的時候,創(chuàng)建一張用戶表,如何讓該表的主鍵id從0開始自增?網(wǎng)上搜索了很多解決方案,最后發(fā)現(xiàn)了一種方法必實現(xiàn)且有效的方案。下面就來介紹實現(xiàn)方法
二.解決方案
1.實現(xiàn)步驟
(1)創(chuàng)建一張新表,規(guī)定好自增規(guī)則(若該表已經(jīng)存在,則刪除掉再創(chuàng)建即可)
(2)在數(shù)據(jù)庫中對該表插入一條指定id為1的表數(shù)據(jù)
(3)再插入一條不指定id內容的數(shù)據(jù)表,讓表的id自增
(4)使用mybatisPlus創(chuàng)建生成實體類時,指定該實體類的id自增規(guī)則為數(shù)據(jù)庫只增規(guī)則
2.演示
1.創(chuàng)建一張新用戶表,規(guī)定好自增規(guī)則(若該表已經(jīng)存在,則刪除掉再創(chuàng)建即可)
AUTO_INCREMENT=1,只增規(guī)則為下一條表記錄id只增1
create table if not exists `sys_user` ( `id` bigint(20) not null auto_increment PRIMARY KEY comment '主鍵' , `opend_id` varchar(256) DEFAULT null comment '微信用戶唯一id', `account_number` varchar(256) DEFAULT null comment'賬號', `username` varchar(256) not null DEFAULT '' comment '用戶名', `password` varchar(256) comment '密碼', `nick_name` varchar(256) DEFAULT null comment '昵稱', `gender` varchar(25) DEFAULT null comment '性別', `phone` varchar(256) DEFAULT null comment '手機號', `role` varchar(10) default '0' not null comment '角色,0為普通用戶,1為會員', `age` varchar(256) not null DEFAULT'110'comment '年齡', `user_status` varchar(25) default '0' not null comment '狀態(tài)', `update_time` datetime not NULL DEFAULT CURRENT_TIMESTAMP comment '更新時間', `create_time` datetime not NULL DEFAULT CURRENT_TIMESTAMP comment '創(chuàng)建時間', `is_deleted` tinyint default 0 not null comment '是否刪除(0-未刪, 1-已刪)', `email` varchar(256) DEFAULT null comment '郵箱', `avatar` varchar(256) not null DEFAULT 'https://thirdwx.qlogo.cn/mmopen/vi_32/POgEwh4mIHO4nibH0KlMECNjjGxQUq24ZEaG T4poC6icRiccVGKSyXwibcPq4BWmiaIGuG1icwxaQX6grC9VemZoJ8rg/132' comment '頭像圖片', `city` varchar(50) DEFAULT '北京' comment '城市', `province` varchar(50) DEFAULT null comment '省份', `country` varchar(50) comment '國家' ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 comment '用戶表信息';
2.在數(shù)據(jù)庫中對該表插入一條指定id為1的表數(shù)據(jù)
insert into sys_user values(1,'微信用戶唯一id','賬號','用戶名','mima', '昵稱','xb','sjh','js','nl','0',CURRENT_TIMESTAMP,CURRENT_TIMESTAMP, 0,'郵箱','頭像圖片','城市','省份','國家')
3.再插入一條不指定id內容的數(shù)據(jù)表,讓表的id自增
insert into sys_user(username,password,country) values('dscdc','8979777','中國');經(jīng)過這三步操作后,我們打開navicat來查看數(shù)據(jù)庫中sys_user表里的記錄

可以看出,生成的表id已經(jīng)是按照只增1的規(guī)則只增了。
最后我們只需要在Java實體類的id字段上加上一個注解,規(guī)定mybatisplus在添加新表時按照數(shù)據(jù)庫表設計時id的只增規(guī)則只增即可,該注解為@TableId(value ="id",type = IdType.AUTO)
mybatis-plus的@TableId注解
@TableId(value=“xxx”,type = IdType.xxx):
“value”:設置數(shù)據(jù)庫字段值
“type”:設置主鍵類型、如果數(shù)據(jù)庫主鍵設置了自增建議使用“AUTO”
@TableId(value ="id",type = IdType.AUTO)
下面給出該實體類的完整Java代碼,到這里我們也就實現(xiàn)了建表id按照自增規(guī)則自增功能
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("sys_user")
public class SysUser {
// type = IdType.AUTO id按照數(shù)據(jù)庫里設置的只增規(guī)則自己增加
@TableId(value ="id",type = IdType.AUTO)
private Long id;
//用戶名
private String username;
//賬號
private String accountNumber;
//密碼
private String password;
//昵稱
private String nickName;
//手機號
private String phone;
//角色
private String role;
//年齡
private String age;
//狀態(tài)
private String userStatus;
//更新時間
private Date updateTime;
//創(chuàng)建時間
private Date createTime;
//是否刪除(0-未刪, 1-已刪)
private Integer isDeleted;
//郵箱
private String email;
//頭像圖片
private String avatar;
private String gender;
private String city;
private String province;
private String country;
private String opendId;
}總結
到此這篇關于mysql創(chuàng)建表設置表主鍵id從1開始自增的解決方案的文章就介紹到這了,更多相關mysql表主鍵id從1自增內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
MySQL中將逗號分隔的字段轉換為多行數(shù)據(jù)的方法
在我們的實際開發(fā)中,經(jīng)常需要存儲一些字段,它們使用像,?-?等連接符進行連接,在查詢過程中,有時需要將這些字段使用連接符分割,然后查詢多條數(shù)據(jù),今天,我們將使用一個實際的生產(chǎn)場景來詳細解釋這個解決方案,需要的朋友可以參考下2024-04-04
mysql輸入中文出現(xiàn)ERROR 1366的解決方法
這篇文章主要為大家詳細介紹了mysql輸入中文出現(xiàn)ERROR 1366的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04
解決MySQL數(shù)據(jù)庫意外崩潰導致表數(shù)據(jù)文件損壞無法啟動的問題
這篇文章主要介紹了MySQL數(shù)據(jù)庫意外崩潰導致表數(shù)據(jù)文件損壞無法啟動的問題及解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
圖文詳解Mysql使用left?join寫查詢語句執(zhí)行很慢問題的解決
最近工作中遇到一個非常奇怪的問題,mysql中有兩張表,test_info和test_do_info需要進行LEFT?JOIN關聯(lián)查詢,下面這篇文章主要給大家介紹了關于Mysql使用left?join寫查詢語句執(zhí)行很慢問題的解決方法2023-04-04

