Wednesday, September 26, 2018

script to reset sequence to 1 or reset sequence to greater than the current value

Use below script to reset value to 1 or less that the current value.

1)


Easy way to reset the sequence to a desired value quickly.

alter sequence NAME_ID_SEQ restart start with  1;
 alter sequence NAME_ID_SEQ increment by 1; 


2) Script:

create or replace procedure set_seq_to( seq_name in varchar2,
New_val in number )
 as
 l_curr number;
 begin
 execute immediate 'select ' || seq_name || '.nextval from dual' INTO l_curr;
 execute immediate 'alter sequence ' || seq_name || ' increment by ' || (New_val-l_curr-1) || ' minvalue 0';
 execute immediate 'select ' || seq_name || '.nextval from dual' INTO l_curr;
 execute immediate 'alter sequence ' || seq_name ||  ' increment by 1 ';
dbms_output.put_line ( 'Sequence ' || seq_name || ' is now at ' || New_val );
 end;
 /


Exec set_seq_to(‘seq_name’,reset-to-value);

'select ' seq_name.nextval from dual  -- run couple of times…. To make lastnumber greater than minvalue…

'alter sequence seq_name increment by 1  minvalue 1;


2)

greater than current value...
if you want to increase sequence to a value greater than the current value by 2414 then do below steps.


alter sequence NAME_ID_SEQ  increment by 2415;
alter sequence NAME_SEQ  increment by 1;

hope this helps..

No comments:

Post a Comment

PostgreSql: Useful Commands-

 1)   ************************* Users ***************************  -- List of users with roles assigned: SELECT usename AS role_name,   CASE...