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. ग्राफ़ समस्याएं:SQL सर्वर में NOCYCLE पूर्व प्रतिस्थापन द्वारा कनेक्ट करें?

  2. CachedRowSet परिणामसेट से धीमा?

  3. Oracle एक फ़ंक्शन को कॉल करने की प्रक्रिया बना रहा है

  4. Oracle में महीने के नाम के बाद अनुगामी रिक्त स्थान कैसे निकालें?

  5. पहली डेटा पंक्ति में कॉलम नामों के साथ गतिशील रूप से विभिन्न तालिकाओं से डेटा दिखाने के लिए पीएल/एसक्यूएल प्रक्रिया/फ़ंक्शन