【发布时间】: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