Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Đặt lại trình tự thành một giá trị cụ thể

Bạn có thể sử dụng số tăng âm để đặt lại chuỗi thành giá trị thấp hơn - tập lệnh này (nó chỉ là phiên bản khối PL / SQL của bạn) sẽ hoạt động với các giá trị chuỗi lớn hơn 9999 mà không gặp vấn đề gì):

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. Trong mệnh đề so với mệnh đề OR, hiệu suất khôn ngoan

  2. Nhận danh sách tất cả các hàm và thủ tục trong cơ sở dữ liệu Oracle

  3. % NOTFOUND có thể trả về null sau khi tìm nạp không?

  4. Giải thích FOR trong tiên tri

  5. SQL tham chiếu con + cha mẹ