ALTER SEQUENCE 修改序列解決惟一約束衝突 unique constraint violated

背景

    自增序列會遇到也會遇到惟一約束衝突嗎?是的,最多見的狀況就是數據遷移以後,致使數據最大值超過序列值。sql

    軟件開發中不遇到些出乎意料的問題,總感受不太夠勁。緩存

修改序列(ALTER SEQUENCE)

    用於修改序列的當前值、最大值、最小值、緩存長度等。咱們以Oracle爲例,語法以下圖oracle

    咱們要作的是修改序列的當前值,與當前字段的數據最大值作同步。好,咱們先來查詢一下當前序列當前值spa

SELECT seqname.CURRVAL FROM dual

  

    ORserver

SELECT last_number
FROM user_sequences
WHERE sequence_name='seqname'

  

 

    而後修改序列值,好比增長100htm

ALTER SEQUENCE seqname INCREMENT BY 100;

  

    最後校驗一下序列的nextval,必定要超過目前的數據最大值。blog

SELECT seqname.NEXTVAL FROM dual

  

參考資料

    Oracle ALTER SEQUENCE:https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_2011.htm開發

相關文章
相關標籤/搜索