我的应用程序使用DB2数据库。我已经为我的表创建了一个生成主键的序列,它今天工作正常,但现在它似乎正在生成现有值,并且在插入值时我收到DuplicateKeyException。经过一段谷歌搜索后,我发现我们可以再次重置序列。 有人可以帮助我提供最好的选择,因为我没有对序列进行过多的工作以及在采用这种方法时需要考虑的事项。 如果我必须重置序列,那么最好的方法是什么,然后在这样做之前再次指出。另外,我很高兴知道我面临的问题背后的原因是什么,以便我可以采取将来关心它。
仅供参考,尚未达到创建序列时分配的最大值。
提前多多感谢。
答案 0 :(得分:0)
ALTER SEQUENCE SCHEMA.SEQ_NAME RESTART WITH NUMERIC_VALUE;
这在我的情况下是必需的,即重新启动序列的值高于正在使用序列的id字段的当前最大值。
NUMERIC_VALUE表示高于我的序列生成字段的当前最大值的值。
希望它对其他人有所帮助。
此问题的原因可能是在数据库中手动插入记录。