gpt4 book ai didi

auto-increment - 在H2数据库中,auto_increment字段增加了32?

转载 作者:行者123 更新时间:2023-12-04 03:29:32 27 4
gpt4 key购买 nike

我有这个简单的表(仅用于测试):

create table table 
(
key int not null primary key auto_increment,
name varchar(30)
);

然后我执行以下请求:
insert into table values ( null , 'one');// key=1
insert into table values ( null , 'two');// key=2

在这个阶段一切顺利,然后我关闭 H2 控制台并重新打开它并重新执行此请求:
insert into table values ( null , 'three');// key=33

最后,这是所有结果:

enter image description here

我不知道如何解决这个问题,如果这是一个真正的问题......
等待作者回复。。。

最佳答案

数据库使用 a cache of 32 entries for sequences , 并且自动递增在内部实现了一个序列。如果系统在没有关闭数据库的情况下崩溃,最多会丢失这么多数字。这类似于序列在其他数据库中的工作方式。在这种情况下,不能保证生成的序列值没有间隙。

那么,你真的关闭了数据库吗?你应该 - 如果你不这样做,这在技术上不是问题,但关闭数据库将确保不会发生这种奇怪的事情。如果我正常关闭数据库(停止 H2 控制台工具),则无法重现该问题。关闭所有连接将关闭数据库,如果应用程序正常停止(使用关闭 Hook ),则数据库关闭。

顺便说一下,您确切的数据库 URL 是什么?看来您正在使用 jdbc:h2:tcp://...但我看不到 URL 的其余部分。

关于auto-increment - 在H2数据库中,auto_increment字段增加了32?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11653892/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com