修复数据库主键与 MyBatis-Plus 兼容问题
Closed this issue · 0 comments
Kaiser-Yang commented
通过测试后发现,如果在 MyBatis-Plus
中设置了主键字段的类型为 auto
(自增主键),由于数据库在创建的时候设置了 pk_user_id bigint DEFAULT nextval('public.users_id_seq'::regclass) NOT NULL
这会导致使用 mybatis-plus
的脚本进行插入的时候 id
会以步长 2
进行自增 (0, 2, 4, ...) 如下图所示:
因此需要删除创建表中对应的默认值部分。
此外,阿里巴巴 java
中的规范提到 主键索引名为pk_字段名
因此,应该在创建约束的部分对索引进行以 pk_
开头的命名,而不是在创建表的时候进行如此的命名,表中的主键字段名称全部更改为 id
。
对于唯一索引 (all_column_contraint.sql
中):
ALTER TABLE ONLY public.t_user
ADD CONSTRAINT users_email_key UNIQUE (email);
ALTER TABLE ONLY public.t_user
ADD CONSTRAINT users_username_key UNIQUE (username);
由于使用了逻辑删除,所以当一个用户进行了注销操作后,真正的数据不会被删除,当这个用户重新进行注册的时候,由于唯一索引的存在会导致之前的注册邮箱无法使用,因此目前建议直接删除唯一索引。
另外发现 sql
脚本中有很多的行末空格,应该删除不必要的行末空格。