sql >> Databáze >  >> RDS >> Oracle

Resetujte sekvenci na určitou hodnotu

K resetování sekvence na nižší hodnotu můžete použít záporný přírůstek - tento skript (je to pouze vaše verze bloku PL/SQL) bude bez problémů pracovat s hodnotami sekvence většími než 9999):

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. Omezit spojení na jeden řádek

  2. Jaká je alternativa Find_in_set of mysql v Oracle

  3. MySQL – odkazující na agregovaný sloupec v klauzuli where

  4. Oracle 11g:Odklopte několik sloupců a zadejte název sloupce