यदि मान पहले से ही Postgresl में मौजूद नहीं है, तो पंक्ति डालें

Insert Row If Values Don T Already Exist Postgresl



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

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

>> सम्मिलित करें मेंतालिका नाम(कॉलम 1,स्तंभ) मान ('मान 1', 'मान 2');

यहाँ, एक स्तंभ तालिका की विशेषताएँ हैं। कीवर्ड VALUE का उपयोग मान दर्ज करने के लिए किया जाता है। 'मान' दर्ज की जाने वाली तालिकाओं का डेटा है।







PostgreSQL शेल (psql) में पंक्ति फ़ंक्शन सम्मिलित करना

Postgresql की सफल स्थापना के बाद, हम डेटाबेस का नाम, पोर्ट नंबर और पासवर्ड दर्ज करेंगे। Psql शुरू किया जाएगा। फिर हम क्रमशः प्रश्न करेंगे।





उदाहरण 1: तालिकाओं में नए रिकॉर्ड जोड़ने के लिए INSERT का उपयोग करना
सिंटैक्स के बाद, हम निम्नलिखित क्वेरी बनाएंगे। तालिका में एक पंक्ति सम्मिलित करने के लिए, हम ग्राहक नाम की एक तालिका बनाएंगे। संबंधित तालिका में 3 कॉलम होते हैं। उस कॉलम में डेटा दर्ज करने और अतिरेक से बचने के लिए डेटा-प्रकार के विशेष कॉलम का उल्लेख किया जाना चाहिए। तालिका बनाने की क्वेरी है:





>> सर्जन करना टेबलग्राहक(पहचानNS,नाम वर्कर (40), देशवर्कर (40));

तालिका बनाने के बाद, अब हम अलग-अलग प्रश्नों में पंक्तियों को मैन्युअल रूप से सम्मिलित करके डेटा दर्ज करेंगे। सबसे पहले, हम विशेषताओं के संबंध में विशेष कॉलम में डेटा की सटीकता बनाए रखने के लिए कॉलम नाम का उल्लेख करते हैं। और फिर, मान दर्ज किए जाएंगे। मान एकल कोमा द्वारा एन्कोड किए जाते हैं, क्योंकि उन्हें बिना किसी परिवर्तन के डाला जाना है।



>> डालने मेंग्राहक(पहचान,नाम, देश) मूल्यों ('1','आलिया', 'पाकिस्तान');

प्रत्येक सफल सम्मिलन के बाद, आउटपुट 0 1 होगा, जिसका अर्थ है कि एक बार में 1 पंक्ति डाली जाती है। जैसा कि पहले बताया गया है, क्वेरी में हमने 4 बार डेटा डाला है। परिणाम देखने के लिए, हम निम्नलिखित क्वेरी का उपयोग करेंगे:

>> चुनते हैं*सेग्राहक;

उदाहरण 2: एक ही क्वेरी में कई पंक्तियों को जोड़ने में INSERT कथन का उपयोग करना
डेटा डालने में एक ही दृष्टिकोण का उपयोग किया जाता है लेकिन कई बार सम्मिलित विवरण प्रस्तुत नहीं किया जाता है। हम एक निश्चित क्वेरी का उपयोग करके एक बार में डेटा दर्ज करेंगे; एक पंक्ति के सभी मानों को निम्नलिखित क्वेरी का उपयोग करके अलग किया जाता है, हम आवश्यक आउटपुट प्राप्त करेंगे

उदाहरण 3: किसी अन्य तालिका में संख्याओं के आधार पर एक तालिका में एकाधिक पंक्तियों को सम्मिलित करें
यह उदाहरण एक तालिका से दूसरी तालिका में डेटा सम्मिलित करने से संबंधित है। दो तालिकाओं, ए और बी पर विचार करें। तालिका a में 2 विशेषताएँ हैं, अर्थात नाम और वर्ग। CREATE क्वेरी लागू करके, हम एक टेबल पेश करेंगे। तालिका के निर्माण के बाद, एक सम्मिलित क्वेरी का उपयोग करके डेटा दर्ज किया जाएगा।

>> सर्जन करना टेबलप्रति(नाम वर्कर (30),कक्षा वर्कर (40));
>> डालने मेंप्रतिमूल्यों ('आमना',1),('भीष्म','2'),('जावेद','3'),('नीचे',4');

तालिका में चार मूल्यों को पार करने वाले सिद्धांत का उपयोग करके डाला जाता है। हम चुनिंदा कथनों का उपयोग करके जाँच कर सकते हैं।

इसी तरह, हम सभी नामों और विषयों की विशेषताओं के साथ टेबल बी बनाएंगे। समान 2 प्रश्नों को सम्मिलित करने और संबंधित तालिका से रिकॉर्ड लाने के लिए लागू किया जाएगा।

>> सर्जन करना टेबलबी(सभी नाम(30), विषय(70));

चुनिंदा सिद्धांत द्वारा रिकॉर्ड प्राप्त करें।

>> चुनते हैं*सेबी;

तालिका के मान सम्मिलित करने के लिए बी तालिका में, हम निम्नलिखित क्वेरी का उपयोग करेंगे। यह क्वेरी इस तरह से काम करेगी कि तालिका में सभी नाम बी तालिका में डाला जाएगा प्रति तालिका के संबंधित कॉलम में किसी विशेष संख्या की घटनाओं की संख्या दिखाने वाली संख्याओं की गिनती के साथ बी . b.allnames तालिका निर्दिष्ट करने के लिए ऑब्जेक्ट फ़ंक्शन का प्रतिनिधित्व करता है। काउंट (b.allnames) फंक्शन कुल घटना को गिनने का काम करता है। जैसा कि प्रत्येक नाम एक ही बार में आता है, परिणामी कॉलम में 1 नंबर होगा।

>> डालने मेंप्रति(नाम,कक्षा) चुनते हैंb.सभी नाम, गिनती(ख.सभी नाम) सेबीसमूह द्वाराख.सभी नाम;

उदाहरण 4: यदि मौजूद नहीं है तो पंक्तियों में डेटा डालें
इस क्वेरी का उपयोग पंक्तियों में प्रवेश करने के लिए किया जाता है यदि यह मौजूद नहीं है। सबसे पहले प्रदान की गई क्वेरी जांचती है कि पंक्ति पहले से मौजूद है या नहीं। यदि यह पहले से मौजूद है, तो डेटा नहीं जोड़ा जाता है। और यदि डेटा एक पंक्ति में मौजूद नहीं है, तो नया सम्मिलन आयोजित किया जाएगा। यहाँ tmp एक अस्थायी चर है जिसका उपयोग कुछ समय के लिए डेटा संग्रहीत करने के लिए किया जाता है।

>> डालने मेंबी(सभी नाम, विषय) चुनते हैं*से (चुनते हैं'किंजा'जैसासभी नाम, 'इस्लामियत'जैसाविषय) जैसाटीएमपीकहां नहीं मौजूद ( चुनते हैंसभी नामसेबीकहांसभी नाम='सुंडस'सीमा 1);

उदाहरण 5: INSERT स्टेटमेंट का उपयोग करके PostgreSQL अप्सर्ट
इस फ़ंक्शन की दो किस्में हैं:

  • अद्यतन करें: यदि कोई विरोध होता है, यदि रिकॉर्ड तालिका में मौजूदा डेटा से मेल खाता है, तो इसे नए डेटा के साथ अपडेट किया जाता है।
  • यदि कोई विरोध होता है, तो कुछ न करें : यदि कोई रिकॉर्ड तालिका में मौजूदा डेटा से मेल खाता है, तो वह रिकॉर्ड को छोड़ देता है, या यदि कोई त्रुटि स्थापित हो जाती है, तो उसे भी अनदेखा कर दिया जाता है।

प्रारंभ में, हम कुछ नमूना डेटा के साथ एक तालिका बनाएंगे।

>> सर्जन करना टेबलटीबीएल2(पहचानNS मुख्य चाभी,नाम चरित्र भिन्न);

तालिका बनाने के बाद हम क्वेरी का उपयोग करके tbl2 में डेटा डालेंगे:

>> सम्मिलित करें मेंटीबीएल2मान (1,'उज़्मा'),(2,'अब्दुल'),(3,'हम्ना'),(4,'फातिमा'),(5,'शिज़ा'),(6,'जावेरिया');

यदि कोई विरोध होता है, तो अपडेट करें:

>>सम्मिलित करें मेंटीबीएल2मान (8,'सवारी') परटकराव(पहचान) करना अपडेट करें सेट नाम=छोड़ा गया।नाम;

सबसे पहले, हम आईडी 8 और रिडा नाम की संघर्ष क्वेरी का उपयोग करके डेटा दर्ज करेंगे। उसी आईडी के बाद एक ही क्वेरी का उपयोग किया जाएगा; नाम बदल दिया जाएगा। अब आप देखेंगे कि टेबल में एक ही आईडी पर नाम कैसे बदले जाएंगे।

>> सम्मिलित करें मेंटीबीएल2मान (8,'काम') परटकराव(पहचान) करना अपडेट करें सेट नाम =छोड़ा गया।नाम;

हमने पाया है कि आईडी 8 पर एक विरोध था, इसलिए निर्दिष्ट पंक्ति अपडेट की गई है।

यदि कोई विरोध होता है, तो कुछ न करें

>> सम्मिलित करें मेंटीबीएल2मान (9,'हीरा') परटकराव(पहचान) करना कुछ नहीं;

इस क्वेरी का उपयोग करते हुए, एक नई पंक्ति डाली जाती है। उसके बाद, हम यदि उसी क्वेरी का उपयोग उस संघर्ष को देखने के लिए करेंगे जो हुआ था।

>>सम्मिलित करें मेंटीबीएल2मान (9,'हीरा') परटकराव(पहचान) करना कुछ नहीं;

उपरोक्त छवि के अनुसार, आप देखेंगे कि क्वेरी के निष्पादन के बाद INSERT 0 0 दिखाता है कि कोई डेटा दर्ज नहीं किया गया है।

निष्कर्ष

डेटाबेस संबंधों में अतिरेक को कम करने के लिए, हमने तालिकाओं में पंक्तियों को सम्मिलित करने की समझ की अवधारणा की एक झलक ली है जहाँ डेटा मौजूद नहीं है, या सम्मिलन पूरा नहीं हुआ है, यदि कोई रिकॉर्ड पाया जाता है।