不通過刪除重建方式 重設序列值得簡單方式。

來源:互聯網
上載者:User

        一般來講,序列在實際開發過程中是經常用到的一種對象,通過它來產生主鍵是非常方便的,但是有些時候我們需要將其重新置零,通常採用的方式就是刪除後重新建立。

       下面我們來看一下另外一種方式:

SQL> create sequence seq_1 increment by 1 start with 1 maxvalue 999999999;

序列已建立。SQL> create or replace procedure seq_reset(v_seqname varchar2) as  2  n number(10);  3  tsql varchar2(100);  4  begin  5  execute immediate 'select '||v_seqname||'.nextval from dual' into n;  6  n:=-(n-1);  7  tsql:='alter sequence '||v_seqname||' increment by '|| n;  8  execute immediate tsql;  9  execute immediate 'select '||v_seqname||'.nextval from dual' into n; 10  tsql:='alter sequence '||v_seqname||' increment by 1'; 11  execute immediate tsql; 12  end seq_reset; 13  /

過程已建立。

SQL> select seq_1.nextval from dual;

  NEXTVAL---------        2

SQL> /

  NEXTVAL---------        3

SQL> /

  NEXTVAL---------        4

SQL> /

  NEXTVAL---------        5

SQL> exec seq_reset('seq_1');

PL/SQL 過程已成功完成。

SQL> select seq_1.currval from dual;

  CURRVAL---------        1

SQL>

這樣可以通過隨時調用此過程,來達到序列重設的目的。

此預存程序寫的比較倉促,還可以進一步完善,在此就不再進一步講述。


相關文章

Alibaba Cloud 10 Year Anniversary

With You, We are Shaping a Digital World, 2009-2019

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。