當我們在做專案的時候,建立一張使用者表,如何讓該表的主鍵id從0開始自增?在網路上搜尋了許多解決方案,最後發現了一種方法必實現且有效的方案。以下就來介紹實作方法
#(1)建立一張新表,規定好自增規則(若該表已經存在,則刪除掉再建立即可)
(2)在資料庫中對該表插入一條指定id為1的表資料
(3)再插入一條不指定id內容的資料表,讓表的id自增
(4)使用mybatisPlus建立產生實體類別時,指定該實體類別的id自增規則為資料庫只增規則
1.建立一張新使用者表,規定好自增規則(若該表已經存在,則刪除掉再建立即可)
AUTO_INCREMENT=1,只增規則為下一條表記錄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 '状态', `update_time` datetime not NULL DEFAULT CURRENT_TIMESTAMP comment '更新时间', `create_time` datetime not NULL DEFAULT CURRENT_TIMESTAMP comment '创建时间', `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/POgEwh5mIHO4nibH0KlMECNjjGxQUq24ZEaG 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.在資料庫中對該表插入一條指定id為1的表資料
insert into sys_user values(1,'微信用户唯一id','账号','用户名','mima', '昵称','xb','sjh','js','nl','0',CURRENT_TIMESTAMP,CURRENT_TIMESTAMP, 0,'邮箱','头像图片','城市','省份','国家')
3.再插入一條不指定id內容的資料表,讓表的id自增
insert into sys_user(username,password,country) values('dscdc','8979777','中国');
經過這三步驟操作後,我們打開navicat來查看資料庫中sys_user表裡的記錄
可以看出,生成的表id已經是依照只增1的規則只增了。
最後我們只需要在Java實體類別的id欄位上加上一個註解,規定mybatisplus在新增資料表時依照資料庫表設計時id的只增規則只增即可,該註解為@TableId(value ="id",type = IdType.AUTO)
mybatis-plus的@TableId註解
@TableId(value=“xxx”, type = IdType.xxx):
“value”:設定資料庫欄位值
“type”:設定主鍵類型、如果資料庫主鍵設定了自增建議使用“AUTO”
@TableId(value ="id",type = IdType.AUTO)
下面給出該實體類別的完整Java程式碼,到這裡我們也就實作了建表id依照自增規則自增功能
@Data @AllArgsConstructor @NoArgsConstructor @TableName("sys_user") public class SysUser { // type = IdType.AUTO id按照数据库里设置的只增规则自己增加 @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; //状态 private String userStatus; //更新时间 private Date updateTime; //创建时间 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怎麼建立表設定表主鍵id從1開始自增的詳細內容。更多資訊請關注PHP中文網其他相關文章!