主键列上的唯一约束违例,序列提供了id

时间:2015-11-30 05:35:53

标签: oracle hibernate unique-constraint

我们正在使用Hibernate将行插入到Oracle表中,其中一个序列提供了主键列的ID。在进行插入时,我们得到:

  

ORA-00001:违反了唯一约束(TABLE_A.PK_ID)

如果我们依赖序列获取唯一ID,这怎么可能?

1 个答案:

答案 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参与更快。