Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Zresetuj sekwencję do określonej wartości

Możesz użyć ujemnego przyrostu, aby zresetować sekwencję do niższej wartości - ten skrypt (to tylko twoja wersja bloku PL/SQL) będzie działał bez problemów z wartościami sekwencji większymi niż 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. Jak migrować zmiany DDL z jednego środowiska do drugiego?

  2. Oracle SQL Znalezienie 5 najniższych wynagrodzeń

  3. Łączenie kolejnych przedziałów ważności dat

  4. PHP - nie znaleziono oci_connect

  5. Kolumna obcinania Oracle