【发布时间】:2011-08-31 05:50:59
【问题描述】:
由于某种原因,过去人们插入数据时没有使用 sequence.NEXTVAL。因此,当我使用 sequence.NEXTVAL 来填充表时,我会遇到 PK 违规,因为该数字已在表中使用。
如何更新下一个值以使其可用?现在,我只是一遍又一遍地插入,直到它成功 (INSERT INTO tbl (pk) VALUES (sequence.NEXTVAL)),然后同步 nextval。
【问题讨论】:
-
@rationalSpring 我最终决定放弃并重新创建序列。
-
删除和重新创建序列的问题是您必须对其重新应用任何授权(更不用说它会暂时使引用它的任何视图或 PL/SQL 无效)。跨度>
-
@JeffreyKemp 没错,所以在我这样做之后,我想出了我在此处发布并接受的自我答案中的例程。
标签: sql oracle oracle10g primary-key sequence