Maison > Article > base de données > Comment créer une table dans MySQL et définir l'ID de clé primaire de la table pour qu'elle passe de 1
Lorsque nous travaillons sur un projet et créons une table utilisateur, comment pouvons-nous faire passer l'identifiant de clé primaire de la table de 0 ? J'ai recherché de nombreuses solutions en ligne et j'ai finalement trouvé une solution sûre d'être mise en œuvre et efficace. Présentons la méthode d'implémentation
(1) Créez une nouvelle table et spécifiez les règles d'incrémentation automatique (si la table existe déjà, supprimez-la et recréez-la)
( 2) Insérez une table de données avec un identifiant spécifié de 1 dans la table de la base de données
(3) Insérez ensuite une table de données sans spécifier le contenu de l'identifiant et laissez l'identifiant de la table augmenter automatiquement
(4) Utilisez mybatisPlus pour créer et générer des classes d'entités Lorsque, spécifiez la règle d'incrémentation automatique de l'identifiant de la classe d'entité comme règle d'incrémentation de la base de données uniquement
1. Créez une nouvelle table utilisateur et spécifiez la règle d'incrémentation automatique (si la table existe déjà). , supprimez-le et créez-le à nouveau) Oui)
AUTO_INCREMENT=1, la seule règle d'augmentation est que l'identifiant de l'enregistrement de table suivant n'augmente que de 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 Insérez une donnée de table avec l'identifiant spécifié de 1 dans la base de données
.insert into sys_user values(1,'微信用户唯一id','账号','用户名','mima', '昵称','xb','sjh','js','nl','0',CURRENT_TIMESTAMP,CURRENT_TIMESTAMP, 0,'邮箱','头像图片','城市','省份','国家')
3. Insérez-en un autre non spécifié La table de données avec le contenu id permet d'incrémenter l'identifiant de la table
insert into sys_user(username,password,country) values('dscdc','8979777','中国');
Après ces trois étapes, nous ouvrons navicat pour visualiser les enregistrements de la table sys_user dans la base de données
Cela peut on voit que l'identifiant de table généré est déjà conforme à La règle qui n'augmente que de 1 ne fait qu'augmenter.
Enfin, il suffit d'ajouter une annotation au champ id de la classe d'entité Java, stipulant que lors de l'ajout d'une nouvelle table, mybatisplus ne peut augmenter l'identifiant que selon la seule règle d'augmentation de la conception de la table de base de données. @TableId(value ="id",type = IdType.AUTO)
mybatis-plus @TableId annotation
@TableId(value="xxx", type = IdType.xxx):
"value": Définir la valeur du champ de base de données
"type": Définir la clé primaire tapez, si la clé primaire de la base de données est définie sur self Il est recommandé d'utiliser "AUTO"
@TableId(value ="id",type = IdType.AUTO)
Le code Java complet de la classe d'entité est donné ci-dessous. À ce stade, nous avons également réalisé la fonction de création d'un identifiant de table. peut être incrémenté selon les règles d'auto-incrémentation
@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; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!