亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Oracle中重置序列?

如何在Oracle中重置序列?

桃花長相依 2019-06-29 17:57:26
如何在Oracle中重置序列?在……里面PostgreSQL我可以做這樣的事:ALTER SEQUENCE serial RESTART WITH 0;有甲骨文的等價物嗎?
查看完整描述

3 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

下面是從Oracle古魯將任何序列重置為0的很好的過程湯姆·凱特..偉大的討論的利弊在下面的鏈接也。

[email protected]> create or replaceprocedure reset_seq( p_seq_name in varchar2 )is
    l_val number;begin
    execute immediate    'select ' || p_seq_name || '.nextval from dual' INTO l_val;

    execute immediate    'alter sequence ' || p_seq_name || ' increment by -' || l_val || 
                                                          ' minvalue 0';

    execute immediate    'select ' || p_seq_name || '.nextval from dual' INTO l_val;

    execute immediate    'alter sequence ' || p_seq_name || ' increment by 1 minvalue 0';end;/

從本頁:動態SQL重置序列值
另一項很好的討論也在這里進行:如何重置序列?


查看完整回答
反對 回復 2019-06-29
?
千巷貓影

TA貢獻1829條經驗 獲得超7個贊

真正的重新啟動是不可能的。AFAIK..(如果我錯了,請糾正我!)

但是,如果要將其設置為0,則只需刪除并重新創建它。

如果要將其設置為特定值,則可以將增量設置為負值并獲得下一個值。

也就是說,如果您的序列為500,您可以將其設置為100

ALTER SEQUENCE serial INCREMENT BY -400;SELECT serial.NEXTVAL FROM dual;ALTER SEQUENCE serial INCREMENT BY 1;


查看完整回答
反對 回復 2019-06-29
?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

這是我的方法:

  1. 刪除序列
  2. 重造

例子:

--Drop sequenceDROP SEQUENCE MY_SEQ;-- Create sequence create sequence MY_SEQ
minvalue 1maxvalue 999999999999999999999start with 1increment by 1cache 20;


查看完整回答
反對 回復 2019-06-29
  • 3 回答
  • 0 關注
  • 1998 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號