我需要重命名另一架構中的序列串。其他具有相同currval架構中的重命名序列
RENAME old_seq到new_seq不起作用。
嘗試:
ALTER SEQUENCE old_seq RENAME TO new_seq;
,但它給了我錯誤
ORA-02286: no options specified for ALTER SEQUENCE
我不想提在創建序列,我此前提到的所有的選項,因爲他們需要的是相同的。只有名字需要改變。
我需要重命名另一架構中的序列串。其他具有相同currval架構中的重命名序列
RENAME old_seq到new_seq不起作用。
嘗試:
ALTER SEQUENCE old_seq RENAME TO new_seq;
,但它給了我錯誤
ORA-02286: no options specified for ALTER SEQUENCE
我不想提在創建序列,我此前提到的所有的選項,因爲他們需要的是相同的。只有名字需要改變。
如果您不是該序列的所有者,您可以使用下面的步驟: -
SELECT CURVAL FROM old_seq;
這會給你Current_Sequence的價值。
掉落使用
DROP SEQUENCE old_seq;
這個序列,並使用相同的名稱新的序列。使用
CREATE SEQUENCE old_seq;
然後改變與此: -
ALTER SEQUENCE seq_example INCREMET BY <CURVAL FROM OLD VALUE>;
從@ankit答案很符合什麼需要解決這個問題行,但它提出了一些問題和錯別字我」米解決這個答案。我希望它會有用。
首先,你必須選擇爲old_seq當前值:如果你得到一個ORA-08002錯誤那是因爲你首先需要爲了初始化索要NEXTVAL
SELECT old_seq.CURRVAL FROM dual;
序列。只要做:
SELECT old_seq.NEXTVAL FROM dual;
然後再次要求CURRVAL。
現在,你有電流值,只需使用
DROP SEQUENCE old_seq;
刪除舊的序列,並通過使用
CREATE SEQUENCE new_seq START WITH <CURRVAL FROM old_seq>;
創造你想要的名稱new_seq如果使用INCREMENT
代替START WITH
,您應該考慮到增量將應用於序列中每個請求的值。您必須創建序列,然後將增量重置爲1.使用START WITH
可以避免該問題。
你正在使用哪個數據庫? –
我正在使用11g db – Anu