要重置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)中是否有这样一种公平的方式来重置序列?
答案 0 :(得分:0)
这个怎么样:
删除序列
DROP TEMP_TABLE_SEQ;
重新创建序列
CREATE SEQUENCE TEMP_TABLE_SEQ
MINVALUE 1
MAXVALUE 999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;