我想请教一个关于alter sequence用法的问题。
如果某sequence修改的最大值或者最小值的范围中不包含当前值,那么在alter sequence之后,通过CurrVal或者NextVal得到的数据是什么?
举个例子,首先创建一个sequence如下:
CREATE SEQUENCE TESTSQC START WITH 20 INCREMENT BY 1 MINVALUE 10 MAXVALUE 30 CYCLE
在多次调用NextVal之后当前值已经达到了28,此时通过下列语句转变sequence的最大值如下:
ALTER SEQUENCE MAXVALUE 25,这样,其实前面的当前值(28)已经超过了重新设定的最大值(25),
在这种情况下,如果在alter以后立刻调用CurrVal或者NextVal会得到什么结果呢?另外,这是一个cycled的sequence,如果这个sequence是nocycled sequence,在类似的情况发生时,alter以后立刻调用CurrVal或者NextVal会得到什么结果?请高人赐教,谢谢!
如果某sequence修改的最大值或者最小值的范围中不包含当前值,那么在alter sequence之后,通过CurrVal或者NextVal得到的数据是什么?
举个例子,首先创建一个sequence如下:
CREATE SEQUENCE TESTSQC START WITH 20 INCREMENT BY 1 MINVALUE 10 MAXVALUE 30 CYCLE
在多次调用NextVal之后当前值已经达到了28,此时通过下列语句转变sequence的最大值如下:
ALTER SEQUENCE MAXVALUE 25,这样,其实前面的当前值(28)已经超过了重新设定的最大值(25),
在这种情况下,如果在alter以后立刻调用CurrVal或者NextVal会得到什么结果呢?另外,这是一个cycled的sequence,如果这个sequence是nocycled sequence,在类似的情况发生时,alter以后立刻调用CurrVal或者NextVal会得到什么结果?请高人赐教,谢谢!
这种情况,你运行:
ALTER SEQUENCE MAXVALUE 25
系统就会提示当前序列的最大值已经大于25,不能变小,
所以只能取比最大值大值!
ALTER SEQUENCE MAXVALUE 25
系统就会提示当前序列的最大值已经大于25,不能变小,
所以只能取比最大值大值!
——明白了,谢谢啦