PostgreSQL ऑटो-इंक्रीमेंट प्राइमरी की को कैसे सेटअप करें?

How Setup Postgresql Auto Increment Primary Key



ऐसे अवसर हो सकते हैं जहां आप PostgreSQL में तालिकाओं का निर्माण और रखरखाव करते हैं जब आप अनुरोध पर उत्पन्न होने वाले कॉलम के लिए विशेष मान चाहते हैं। यह आईडी कॉलम के लिए विशेष रूप से सच होगा जो तालिका की प्राथमिक कुंजी के रूप में कार्य करता है। सौभाग्य से, SERIAL छद्म-प्रकार एक ऑटो-इंक्रीमेंटिंग पूर्णांक श्रृंखला को सुविधाजनक बनाने की अनुमति देता है। एक श्रृंखला PostgreSQL में एक प्रकार का डेटाबेस ऑब्जेक्ट है जो अनुक्रमित या पूर्णांक की एक श्रृंखला उत्पन्न करता है। एक पोस्टग्रेएसक्यूएल अनुक्रम अलग-अलग पूर्णांकों की एक स्ट्रिंग उत्पन्न करता है, जिससे इसे एक नई तालिका बनाते समय प्राथमिक कुंजी के रूप में उपयोग करने के लिए उपयुक्त बना दिया जाता है। हम आपको दिखाएंगे कि PostgreSQL में ऑटो-इंक्रीमेंट मेनस क्या हैं और हम इस गाइड में SERIAL छद्म-प्रकार का उपयोग करेंगे।

वाक्य - विन्यास:

ऑटो-इन्क्रीमेंट प्राथमिक कुंजी बनाने के लिए सामान्य सिंटैक्स इस प्रकार है:







>>तालिका बनाएं_नाम( पहचानधारावाहिक);

आइए अब CREATE TABLE घोषणा पर अधिक विस्तार से नज़र डालें:



  • PostgreSQL पहले एक श्रृंखला इकाई उत्पन्न करता है। यह श्रृंखला में अगला मान उत्पन्न करता है और इसे फ़ील्ड के डिफ़ॉल्ट संदर्भ मान के रूप में सेट करता है।
  • PostgreSQL एक id फ़ील्ड पर निहित प्रतिबंध NOT NULL लागू करता है क्योंकि एक श्रृंखला संख्यात्मक मान उत्पन्न करती है।
  • आईडी फ़ील्ड को श्रृंखला के धारक के रूप में आवंटित किया जाएगा। यदि आईडी फ़ील्ड या तालिका को ही छोड़ दिया जाता है, तो अनुक्रम को छोड़ दिया जाएगा।

ऑटो-इन्क्रीमेंट की अवधारणा प्राप्त करने के लिए, कृपया सुनिश्चित करें कि इस गाइड में चित्रण जारी रखने से पहले PostgreSQL को आपके सिस्टम पर माउंट और कॉन्फ़िगर किया गया है। डेस्कटॉप से ​​PostgreSQL कमांड-लाइन शेल खोलें। अपना सर्वर नाम जोड़ें जिस पर आप काम करना चाहते हैं, अन्यथा इसे डिफ़ॉल्ट पर छोड़ दें। उस डेटाबेस नाम को लिखें जो आपके सर्वर में है जिस पर आप काम करना चाहते हैं। यदि आप इसे बदलना नहीं चाहते हैं तो इसे डिफ़ॉल्ट के रूप में छोड़ दें। हम परीक्षण डेटाबेस का उपयोग करेंगे, इसलिए हमने इसे जोड़ा है। आप डिफ़ॉल्ट पोर्ट 5432 पर भी काम कर सकते हैं, लेकिन आप इसे बदल भी सकते हैं। अंत में, आपको अपने द्वारा चुने गए डेटाबेस के लिए उपयोगकर्ता नाम प्रदान करना होगा। यदि आप इसे बदलना नहीं चाहते हैं तो इसे डिफ़ॉल्ट पर छोड़ दें। चयनित उपयोगकर्ता नाम के लिए अपना पासवर्ड टाइप करें और कमांड शेल का उपयोग शुरू करने के लिए कीबोर्ड से एंटर दबाएं।







डेटा प्रकार के रूप में सीरियल कीवर्ड का उपयोग करना:

जब हम कोई तालिका बनाते हैं, तो हम आमतौर पर प्राथमिक कॉलम फ़ील्ड में SERIAL कीवर्ड नहीं जोड़ते हैं। इसका मतलब है कि INSERT स्टेटमेंट का उपयोग करते समय हमें प्राथमिक कुंजी कॉलम में मानों को जोड़ना होगा। लेकिन जब हम तालिका बनाते समय अपनी क्वेरी में कीवर्ड SERIAL का उपयोग करते हैं, तो हमें मान सम्मिलित करते समय प्राथमिक कॉलम मान जोड़ने की आवश्यकता नहीं होनी चाहिए। आइए उस पर एक नजर डालते हैं।

उदाहरण 01:

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



>>टेबल टेस्ट बनाएं( पहचानसीरियल प्राथमिक कुंजी, नाम टेक्स्ट नॉट न्यूल);

आइए नए बनाए गए टेबल टेस्ट के कॉलम नाम में कुछ मान डालें। हम कॉलम आईडी में कोई वैल्यू नहीं जोड़ेंगे। जैसा कि नीचे बताया गया है, आप देख सकते हैं कि INSERT कमांड का उपयोग करके मान सफलतापूर्वक डाले गए हैं।

>>परीक्षण में सम्मिलित करें(नाम)मान('अक्सा'),('रिम्शा'),('खान');

तालिका 'टेस्ट' के रिकॉर्ड की जाँच करने का समय आ गया है। कमांड शेल में नीचे दिए गए SELECT निर्देश को आज़माएं।

>>चुनते हैं*परीक्षण से;

नीचे दिए गए आउटपुट से, आप देख सकते हैं कि कॉलम आईडी में स्वचालित रूप से कुछ मान मिल गए हैं, भले ही हमने INSERT कमांड से कोई मान नहीं जोड़ा है क्योंकि डेटाटाइप SERIAL हमने कॉलम आईडी के लिए निर्दिष्ट किया है। इस प्रकार डेटाटाइप SERIAL अपने आप काम करता है।

उदाहरण 02:

SERIAL डेटा प्रकार कॉलम के मान की जाँच करने का दूसरा तरीका INSERT कमांड में रिटर्निंग कीवर्ड का उपयोग करना है। नीचे दी गई घोषणा टेस्ट टेबल में एक नई लाइन बनाती है और आईडी फ़ील्ड के लिए मान उत्पन्न करती है:

>>परीक्षण में सम्मिलित करें(नाम)मान('हसम')लौटनेपहचान;

चयन क्वेरी का उपयोग करके तालिका परीक्षण के रिकॉर्ड की जांच करके, हमें नीचे दिए गए आउटपुट के रूप में छवि में दिखाया गया है। पांचवें रिकॉर्ड को कुशलता से तालिका में जोड़ा गया है।

>>चुनते हैं*परीक्षण से;

उदाहरण 03:

उपरोक्त सम्मिलित क्वेरी का वैकल्पिक संस्करण DEFAULT कीवर्ड का उपयोग कर रहा है। हम INSERT कमांड में कॉलम आईडी नाम का उपयोग करेंगे, और VALUES सेक्शन में, हम इसे DEFAULT कीवर्ड को इसके मान के रूप में देंगे। निष्पादन पर नीचे दी गई क्वेरी समान काम करेगी।

>>परीक्षण में सम्मिलित करें(पहचान, नाम)मान(डिफ़ॉल्ट, 'रेस');

आइए निम्न प्रकार से SELECT क्वेरी का उपयोग करके तालिका को फिर से देखें:

>>चुनते हैं*परीक्षण से;

आप नीचे दिए गए आउटपुट से देख सकते हैं, नया मान जोड़ा गया है जबकि कॉलम आईडी डिफ़ॉल्ट रूप से बढ़ा दिया गया है।

उदाहरण 04:

सीरियल कॉलम फ़ील्ड की अनुक्रम संख्या PostgreSQL में एक तालिका में पाई जा सकती है। इसे पूरा करने के लिए विधि pg_get_serial_sequence() का उपयोग किया जाता है। हमें pg_get_serial_sequence() विधि के साथ currval() फ़ंक्शन का उपयोग करना होगा। इस क्वेरी में, हम pg_get_serial_sequence() फ़ंक्शन के पैरामीटर में तालिका का नाम और उसका सीरियल कॉलम नाम प्रदान करेंगे। जैसा कि आप देख सकते हैं, हमने टेबल टेस्ट और कॉलम आईडी निर्दिष्ट किया है। इस विधि का उपयोग नीचे दिए गए क्वेरी उदाहरण में किया जाता है:

>>वक्र चुनें(pg_get_serial_sequence('परीक्षण', 'पहचान'));

यह ध्यान देने योग्य है कि हमारा वक्र () फ़ंक्शन हमें अनुक्रम के सबसे हालिया मान को निकालने में मदद करता है, जो कि 5 है। नीचे दी गई तस्वीर एक उदाहरण है कि प्रदर्शन कैसा दिख सकता है।

निष्कर्ष:

इस गाइड ट्यूटोरियल में, हमने दिखाया है कि PostgreSQL में ऑटो-इन्क्रीमेंट के लिए SERIAL छद्म-प्रकार का उपयोग कैसे करें। PostgreSQL में एक श्रृंखला का उपयोग करके, संख्याओं का एक ऑटो-इन्क्रीमेंटिंग सेट बनाना आसान है। उम्मीद है, आप संदर्भ के रूप में हमारे दृष्टांतों का उपयोग करके तालिका विवरण में SERIAL फ़ील्ड को लागू करने में सक्षम होंगे।