कल के ब्लॉग पोस्ट में, मैंने एक पहचान मूल्य के साथ एक तालिका बनाने के बारे में लिखा था। लेकिन Oracle 12c नई सुविधा जो मुझे बेहतर लगती है, एक अनुक्रम को एक कॉलम के डिफ़ॉल्ट मान के लिए संख्या जनरेटर होने की अनुमति दे रही है। यह देखने के लिए कि मेरा क्या मतलब है, इस उदाहरण को देखें:
SQL> create sequence test_seq; Sequence created. SQL> create table test_tab (id number default test_seq.NEXTVAL, val varchar2(20)); Table created.
जैसा कि आप देख सकते हैं, मेरी परीक्षण तालिका के आईडी कॉलम में एक DEFAULT क्लॉज है जो मेरे द्वारा बनाए गए अनुक्रम के NEXTVAL का उपयोग करता है। अब तालिका में कुछ डेटा डालें।
SQL> insert into test_tab (val) values ('first row'); 1 row created. SQL> insert into test_tab (val) values ('second row'); 1 row created. SQL> commit; Commit complete. SQL> select * from test_tab; ID VAL ---------- -------------------- 1 first row 2 second row
जैसा कि आप देख सकते हैं, Oracle अनुक्रम का उपयोग मूल्यों को पॉप्युलेट करने के लिए किया गया था। पहली नज़र में, यह डेटा मॉडलर के लिए जीवन को आसान बना देगा क्योंकि किसी को NEXTVAL उत्पन्न करने और कॉलम को यह मान निर्दिष्ट करने के लिए ट्रिगर को कोड करने के पारंपरिक मार्ग पर जाने की आवश्यकता नहीं होगी। हालाँकि, अनुक्रम के साथ कॉलम मान का यह ऑटोपॉपुलेशन केवल तभी काम करता है जब आप कोई मान निर्दिष्ट नहीं करते हैं, यदि आप इसे डिफ़ॉल्ट होने देते हैं। यदि आप स्पष्ट रूप से मान बताते हैं, तो यह विधि अनुक्रम का उपयोग नहीं करेगी। एक ट्रिगर, यदि ठीक से कोड किया गया है, तो कॉलम के लिए अनुक्रम के अगले मान के उपयोग को बाध्य करेगा।