Mar*_*lsi 10 h2 auto-increment
我有这个简单的表(仅用于测试):
create table table
(
key int not null primary key auto_increment,
name varchar(30)
);
Run Code Online (Sandbox Code Playgroud)
然后我执行以下请求:
insert into table values ( null , 'one');// key=1
insert into table values ( null , 'two');// key=2
Run Code Online (Sandbox Code Playgroud)
在这个阶段一切顺利,然后关闭H2控制台并重新打开它并重新执行此请求:
insert into table values ( null , 'three');// key=33
Run Code Online (Sandbox Code Playgroud)
最后,这是所有结果:

我不知道如何解决这个问题,如果这是一个真正的问题...等待作者的回复......
Tho*_*ler 14
数据库使用32个条目的缓存作为序列,并且自动递增在内部实现序列.如果系统在没有关闭数据库的情况下崩溃,那么最多会丢失许多数字.这类似于序列在其他数据库中的工作方式.在这种情况下,不保证无间隙地生成序列值.
那么,你真的关闭了数据库吗?你应该 - 如果你不这样做,这在技术上不是问题,但关闭数据库将确保不会发生这种奇怪的事情.如果我通常关闭数据库(停止H2控制台工具),我无法重现该问题.关闭所有连接将关闭数据库,如果应用程序正常停止(使用关闭挂钩),则关闭数据库.
顺便问一下,您确切的数据库URL是什么?看来你正在使用,jdbc:h2:tcp://...但我看不到URL的其余部分.
| 归档时间: |
|
| 查看次数: |
7669 次 |
| 最近记录: |