要重置 Oracle 序列,我遵循以下临时方法。比方说,我有一个以TEMP_TABLE
与其关联的序列命名的表。
以下 SQL 生成22作为序列下一个值(仅在这种情况下)。
SELECT TEMP_TABLE_SEQ.NEXTVAL from DUAL;
以下语句将缓存大小减小到SEQUENCE.MINVALUE
.
ALTER SEQUENCE TEMP_TABLE_SEQ INCREMENT BY -21;
接下来,我正在执行一个虚拟选择,它检索1作为序列值。
SELECT TEMP_TABLE_SEQ.NEXTVAL from DUAL;
我现在将缓存大小重置为1。
ALTER SEQUENCE TEMP_TABLE_SEQ INCREMENT BY 1;
所以下面的语句,
SELECT TEMP_TABLE_SEQ.NEXTVAL from DUAL;
给我2作为下一个序列值,依此类推。
在 PostgreSQL 服务器中,仅以下一条语句就足以重置序列。
ALTER SEQUENCE TEMP_TABLE_SEQ RESTART WITH 0;
Oracle(10g)中是否有这样一种公平的方式来重置序列?