mariadb 序列号,不正确的编号

iugsix8n  于 2022-11-08  发布在  其他
关注(0)|答案(1)|浏览(182)

在一个spring boot应用程序中,我有这样一个实体
@数据@NoArgsConstructor @AllArgsConstructor @实体公共类用户{

@Id
@GeneratedValue(generator="user_id_seq")
@SequenceGenerator(name="user_id_seq",sequenceName="user_id_seq", allocationSize=1)
Long id
 ...

}
在mariadb中,当我检查序列时

CREATE OR REPLACE SEQUENCE `user_id_seq` start with 1 minvalue 1 maxvalue 9223372036854775806 increment by 1 cache 1000 nocycle ENGINE=InnoDB

在数据库中,我只有5个用户。

select id from `user` u

本查询返回
1002 1004 1005 2007年3001
为什么不是1 2 3 4 5
是因为缓存1000吗?

w41d8nur

w41d8nur1#

是的,这是因为缓存。缓存中的数字在关闭时被丢弃,甚至表缓存关闭序列。
如果还没有bug report,请创建一个。关闭表格时保存一个数字是一个相当简单的修复方法。

相关问题