Oracle
 sql >> Database >  >> RDS >> Oracle

Come resetto una sequenza in Oracle?

Ecco una buona procedura per reimpostare qualsiasi sequenza su 0 dal guru Oracle Tom Kyte. Ottima discussione anche sui pro e contro nei link sottostanti.

[email protected]> 
create or replace
procedure 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;
/

Da questa pagina:SQL dinamico per reimpostare il valore della sequenza
Qui c'è anche un'altra buona discussione:come reimpostare le sequenze?