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

Nulstil sekvensen til en bestemt værdi

Du kan bruge et negativt trin til at nulstille en sekvens til en lavere værdi - dette script (det er bare en PL/SQL-blokversion af din) vil fungere med sekvensværdier større end 9999 uden problemer):

declare
 currval pls_integer;
 diff pls_integer;
begin
  select SQ_USER_ID.nextval into currval from dual;
  dbms_output.put_line('value before alter: ' || currval);
  diff := 99999 - currval;
  dbms_output.put_line('diff: ' || diff);
  execute immediate ' alter sequence SQ_USER_ID INCREMENT BY ' ||  diff || 'nocache';
  select SQ_USER_ID.nextval into currval from dual;
  dbms_output.put_line('value after alter: ' || currval);
  execute immediate 'alter sequence SQ_USER_ID INCREMENT BY 1  cache 20';
end;



  1. Hvis der findes data, ellers... bruger du Oracle SQL?

  2. Tjek, om der findes en midlertidig tabel, og slet, om den findes, før du opretter en midlertidig tabel

  3. Oracle-dato til Java-dato

  4. PostGIS, Er det muligt at oprette en polygon fra nogle punkter