出于某种原因,过去人们插入数据时没有使用sequence.NEXTVAL。因此,当我使用sequence.NEXTVAL来填充表时,我遇到了PK违规,因为该数字已在表中使用。
如何更新下一个值以使其可用?现在,我只是一遍又一遍地插入,直到成功(INSERT INTO tbl (pk) VALUES (sequence.NEXTVAL)
),然后同步下一个val。
最佳答案
您可以暂时增加缓存大小并执行一次虚拟选择,然后将缓存大小重置回 1。例如
ALTER SEQUENCE mysequence INCREMENT BY 100;
select mysequence.nextval from dual;
ALTER SEQUENCE mysequence INCREMENT BY 1;
关于sql - 将 Oracle 序列重置为现有列中的下一个值的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6099108/