我们正在使用Hibernate将行插入到Oracle表中,其中一个序列提供了主键列的ID。在进行插入时,我们得到:
ORA-00001:违反了唯一约束(TABLE_A.PK_ID)
如果我们依赖序列获取唯一ID,这怎么可能?
答案 0 :(得分:0)
事实证明,不知何故,序列变得不同步。 MY_SEQUENCE.nextVal
必须高于表格中的最高ID。
这意味着,select MY_SEQUENCE.nextVal from DUAL;
必须高于select max(ta.ID) from TABLE_A ta;
您需要更新序列:
ALTER SEQUENCE MY_SEQUENCE INCREMENT BY 10000;
我没有权限运行上述语句,所以我只是按住select MY_SEQUENCE.nextVal from DUAL;
上的执行按钮一段时间。它仍然比让DBA参与更快。