背景
自增序列會遇到也會遇到唯一約束沖突嗎?是的,最常見的情況就是數據遷移之后,導致數據最大值超過序列值。
軟件開發中不遇到些出乎意料的問題,總感覺不太夠勁。
修改序列(ALTER SEQUENCE)
用於修改序列的當前值、最大值、最小值、緩存長度等。我們以Oracle為例,語法如下圖



我們要做的是修改序列的當前值,與當前字段的數據最大值做同步。好,我們先來查詢一下當前序列當前值
SELECT seqname.CURRVAL FROM dual
OR
SELECT last_number FROM user_sequences WHERE sequence_name='seqname'
然后修改序列值,比如增加100
ALTER SEQUENCE seqname INCREMENT BY 100;
最后校驗一下序列的nextval,一定要超過目前的數據最大值。
SELECT seqname.NEXTVAL FROM dual
參考資料
Oracle ALTER SEQUENCE:https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_2011.htm
