【问题标题】:H2 database auto-incremented id's have random values after first entryH2 数据库自增 id 在第一次输入后具有随机值
【发布时间】:2015-11-16 10:48:37
【问题描述】:

我用查询创建了数据库表:

"CREATE TABLE downloads(id BIGINT PRIMARY KEY AUTO_INCREMENT,...

当我第一次向表中插入任何内容时,为条目生成的 ID 是 1

第二次其100%的时间随机值1,33,65,97,129,161,193,225,226,227

有没有办法将我的数据库设置为正常自动递增? 1 ,2 ,3 ,4 等,对我来说 ID 号并不重要,我必须能够预先预测将出现在条目中的下一个 ID。如果有办法预测或获取将生成的 ID我的条目我不妨使用它,如果它不会产生任何巨大的开销。

所以我的问题是为什么我要为 id 设置随机值?

有没有办法将自动增量设置为普通+1?

如果无法将自动增量设置为 +1 样式,我可以在生成之前获取 id 值吗?

我用于连接的唯一选项是;DATABASE_TO_UPPER=false

查询插入数据

getConnection().prepareStatement("INSERT INTO downloads(state,name,size,source,added,completedOn,downloadDir) VALUES(?,?,?,?,?,?,?)",Statement.RETURN_GENERATED_KEYS);

编辑:创建新数据库后,数字每次都完全相同,因此这些值不是随机的。我输入的前 3 个值的 id 为 1,33,65

【问题讨论】:

  • 你是如何阅读这些价值观的?如果您想按顺序查看它们,则需要order by
  • @Gordon Linoff 这些都是存在的 id 值。1,33,65,97,129,161,193,225,226,227 之间没有 2,3,4,5.. 等等,这就是它的神秘之处,它只是在AUTO_INCREMENT上给我这些ID

标签: java sql jdbc auto-increment h2


【解决方案1】:

发现问题出在查询的 PRIMARY KEY 部分... 从那里删除它并制作另一个数据库后,现在一切正常。

【讨论】:

    猜你喜欢
    • 2012-03-10
    • 2021-10-06
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 2022-10-30
    • 2016-11-19
    • 1970-01-01
    相关资源
    最近更新 更多