1

可能重复:
如何在 Oracle 中重置序列?

我在 oracle db 中有一个表。该表始终包含大量行,例如几十万行。我在该表中设置了一个 id 并使用了一个序列和一个触发器,这样每次插入记录时都会自动生成并插入 id。现在在通过 java 代码遍历现有行时,有时可以截断该表中的数据并插入新行。在这种情况下,当表为空时,我希望序列从 1 重新开始。

序列看起来像

CREATE SEQUENCE DUMMY_DETAILS_SEQ
  START WITH 356005
  MAXVALUE 999999999999999999999999999
  MINVALUE 1
  NOCYCLE
  CACHE 20
  NOORDER;
4

1 回答 1

0

如果表变空并且您需要重置序列,则必须删除它,然后重新创建它。使用接收表名、表 id 字段和序列名的过程来执行此操作。

此外,您可以找到当前值并使用带负值的增量,以便将其转回零。

alter sequence seq increment by -inc_value minvalue 0;
于 2012-10-05T16:57:07.340 回答