Oracle
 sql >> база данни >  >> RDS >> Oracle

Нулирайте последователността до определена стойност

Можете да използвате отрицателно нарастване, за да нулирате последователност до по-ниска стойност - този скрипт (това е просто вашата версия на PL/SQL блок) ще работи със стойности на последователност, по-големи от 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Добавяне на оператор IF ELSE

  2. sqlplus изявление от командния ред

  3. Грешка ORA-12514 след рестартиране на сървъра

  4. Oracle 10g PL/SQL- Изберете резултати като стойности на колона за актуализиране

  5. Функция RAWTONHEX() в Oracle