프로젝트를 진행하면서 사용자 테이블을 생성할 때 테이블의 기본 키 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": 기본 키 설정 유형, 데이터베이스 기본 키가 self로 설정된 경우 "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 중국어 웹사이트의 기타 관련 기사를 참조하세요!