Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ऑटो इंक्रीमेंट कॉलम - Oracle में डिफ़ॉल्ट मान के रूप में अनुक्रम

कोडिंग में Auto Increment Column एक बहुत ही सामान्य आवश्यकता है। Oracle में इसे प्राप्त करने के कुछ तरीके यहां दिए गए हैं

ओरेकल में स्वतः वृद्धि

यह सुविधा (Oracle Auto Increment Column - Sequence as Default Value) अभी तक Oracle डेटाबेस में मौजूद नहीं है। लेकिन 12c के साथ, oracle वह प्रदान करने में सक्षम है।

मान लीजिए कि हम एक ऑरैकल टेबल सेट करना चाहते हैं जहां अनुक्रम को डालने पर ऑटो-इंक्रिमेंट किया जाना चाहिए। इसे हासिल करने के कई तरीके हैं

विकल्प 1
Oracle 12c से पहले, हमें इसे प्राप्त करने के लिए ट्रिगर डालने से पहले उपयोग करने की आवश्यकता है

टेबल टेस्ट_लैब बनाएं (आईडी नंबर प्राइमरी कीनेम वर्कर (10)); सीक्वेंस टेस्ट_लैब_सेक स्टार्ट 1 इंक्रीमेंट बाय 1 नोसाइकल से बनाएं या ट्रिगर टेस्ट_लैब_बीफ_ऑटो को टेस्ट_लैब पर डालने से पहले बनाएं या बदलें। // पूर्व> 

या

प्रत्येक पंक्ति के लिए
प्रारंभ करें
:new.id :=test_lab_seq.nextval;
end;
/

जब इंसर्ट स्टेटमेंट में आईडी कॉलम का मान हो, तो त्रुटियों से बचने के लिए हम निर्दिष्ट कर सकते हैं कि ट्रिगर्स में आईडी शून्य है या नहीं।

test_lab मानों ('जॉन') में डालें; test_lab मानों ('scott') में डालें; test_lab मानों ('बिल') में डालें; test_lab मानों ('tom') में डालें; test_lab मानों में डालें ('ड्यूक') '); प्रतिबद्ध; test_lab से * चुनें;

विकल्प 2:
Oracle 12c के साथ, हम सीधे एक कॉलम के लिए डिफ़ॉल्ट मान के रूप में सीक्वेंस नेक्स्टवल असाइन कर सकते हैं, इसलिए अब आपको सीक्वेंस के अगले मान के साथ कॉलम को पॉप्युलेट करने के लिए ट्रिगर बनाने की आवश्यकता नहीं है, आपको बस इसे घोषित करने की आवश्यकता है तालिका परिभाषा।

 अनुक्रम बनाएं test_lab_seq 1 वृद्धि के साथ 1 nocycle; तालिका बनाएं test_lab (आईडी संख्या डिफ़ॉल्ट test_lab_seq.nextval प्राथमिक कुंजी); test_lab मानों में डालें ('Cat1'); test_lab मानों ('Cat2') में डालें; में डालें test_lab मान ('Cat3'); test_lab मानों में डालें ('Cat4'); test_lab मानों में डालें ('Cat5');commit;test_lab से * चुनें;

विकल्प 3
12c के साथ, हम पहचान सुविधा का उपयोग कर सकते हैं

तालिका बनाएं test_lab (आईडी संख्या(10) पहचान के रूप में उत्पन्न, नाम varchar(15)); तालिका बनाई गई। Desc TEST_LABName Null? टाइप करें----------आईडी नॉट न्यूल नंबर(10)नाम VARCHAR2(15)
  • हम देख सकते हैं कि NOT NULL बाधा स्वचालित रूप से पहचान कॉलम पर लागू हो जाती है
  • Oracle आंतरिक रूप से ऑटो-इन्क्रीमेंट कॉलम मानों को पॉप्युलेट करने के लिए अनुक्रम का उपयोग करता है।
test_lab मानों ('लंदन') में डालें; test_lab मानों ('न्यूयॉर्क') में डालें; test_lab मानों ('टोक्यो') में डालें; test_lab मानों ('दिल्ली') में डालें; test_lab मानों में डालें (' बैंगलोर'); प्रतिबद्ध; test_lab से * चुनें;

संबंधित Oracle Sql लेख

ओरेकल में टेबल कैसे बनाएं
ओरेकल व्यू कैसे बनाएं
टॉप-एन क्वेरीज और पेजिनेशन
एसक्यूएल क्वेरी कैसे लिखें
ओरेकल एसक्यूएल डीकोड प्रोसेसिंग

  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 सर्वर एकीकरण सेवाओं का उपयोग करके Oracle डेटाबेस से कनेक्ट करना

  2. Oracle SQL WHERE क्लॉज में (+) चिन्ह का क्या अर्थ है?

  3. Oracle प्रपत्रों में कस्टम लॉगिन स्क्रीन बनाना 10g

  4. Oracle में स्पष्ट और निहित कर्सर के बीच अंतर क्या है?

  5. R12.2 ऑनलाइन पैचिंग में बीज डेटा की हैंडलिंग