MySQL - صرف اس صورت میں جب ڈیٹا موجود نہ ہو تو نئی قطار کیسے داخل کی جائے۔

Mysql Srf As Swrt My Jb Y A Mwjwd N W Tw Nyy Qtar Kys Dakhl Ky Jay



MySQL ڈیٹا بیس میں ڈیٹا ذخیرہ کرنے کے لیے ایک مشہور اوپن سورس RDBMS ہے۔ اپنے ڈیٹا بیس کے ٹیبلز میں ڈیٹا داخل کرنا ایک عام کام ہے۔ بعض اوقات، صارف فالتو پن کو ختم کرنے کے لیے ڈپلیکیٹ ڈیٹا داخل نہیں کرنا چاہتے۔ MySQL صارفین کو صرف اس صورت میں ڈیٹا داخل کرنے کی اجازت دیتا ہے جب اس جیسا ڈیٹا پہلے سے موجود نہ ہو۔

یہ پوسٹ صرف اس صورت میں نئی ​​قطار ڈالنے پر بحث کرے گی جب MySQL ٹیبل میں ڈیٹا پہلے سے موجود نہ ہو۔ اس پوسٹ کے ساتھ شروع کرنے سے پہلے، یقینی بنائیں کہ آپ اپنے MySQL لوکل سرور میں لاگ ان ہیں اور ایک ڈیٹا بیس کا انتخاب کیا ہے جہاں آپ کام کرنا چاہتے ہیں۔

ایک نئی قطار صرف اس صورت میں داخل کریں جب 'INSERT IGNORE' بیان کا استعمال کرتے ہوئے ڈیٹا موجود نہ ہو۔

ویسے، عنوان میں سوال کا جواب بہت سادہ اور سیدھا ہے۔ بس استعمال کریں ' داخل کریں۔ ' مطلوبہ الفاظ کے ساتھ ' نظر انداز کریں۔ 'مطلوبہ لفظ۔ یہ اس بات کو یقینی بنائے گا کہ نیا ڈیٹا یا داخل کرنے کا استفسار صرف اس صورت میں عمل میں لایا جائے گا جب MySQL میں ڈیٹا کا کوئی سابقہ ​​اندراج نہیں ملتا ہے۔ اس کا مختصر جائزہ لینے کے لیے درج ذیل نحو پر ایک نظر ڈالیں:







داخل کریں۔ نظر انداز کریں۔ INTO [ ٹیبل - نام ] ( [ کالم 1 - نام ] ، [ کالم 2 - نام ] ، [ کالم 3 - نام ] ) قدریں ( [ قدر 1 ] ، [ قدر 2 ] ، [ قدر3 ] ) ;

آئیے ایک مثال دیکھتے ہیں اگر صارف قطار کی قدر درج کرنا چاہتا ہے ' 1 '،' جان 'اور' ڈو ' میں ' صارف 'کالموں کے لئے میز' آئی ڈی '' پہلا نام 'اور' آخری نام 'بالترتیب. ان اقدار کو داخل کرنے کے لیے اس استفسار کو چلائیں اگر کوئی ہے اگر ان اقدار والی کوئی قطار پہلے سے موجود نہیں ہے:



منتخب کریں۔ * سے صارف؛
داخل کریں۔ نظر انداز کریں۔ INTO صارف ( آئی ڈی ، پہلا نام ، آخری نام ) قدریں ( 1 ، 'جان' ، 'ڈو' ) ;

آؤٹ پٹ میں دو میزیں ہیں جو استفسار سے پہلے اور بعد میں جدول کا ڈیٹا دکھاتی ہیں۔ آپ دیکھ سکتے ہیں کہ ٹیبل میں کچھ بھی تبدیل نہیں ہو رہا ہے کیونکہ قطار پہلے سے موجود ہے لہذا MySQL نے غلطی کو ظاہر کیے بغیر داخل کرنے کے عمل کو کامیابی سے نظر انداز کر دیا ہے:







'Where NOT EXISTS' شق کا استعمال کرتے ہوئے صرف اس صورت میں ایک نئی قطار داخل کریں جب ڈیٹا موجود نہ ہو۔

MySQL میں، ' کہاں وجود نہیں رکھتا ' شق قطاروں کو داخل کرنے سے روکتی ہے اگر وہ پہلے سے ٹیبل میں موجود ہیں جب اسے ' میں استعمال کیا جاتا ہے۔ داخل کریں۔ شرط کی وضاحت کے لیے ذیلی استفسار کے ساتھ بیان۔ جب اس شق کو ذیلی استفسار کے ساتھ استعمال کیا جاتا ہے ' (منتخب کریں * FROM [ٹیبل کا نام] [کالم کا نام] = [اظہار]؛ ” چیک کرتا ہے کہ آیا ٹیبل میں کوئی قطار موجود ہے جو شرط کو پورا کرتی ہے۔ اگر ایک قطار موجود ہے، ' جہاں موجود نہیں ہے۔ 'شق ایک غلط قیمت واپس کرے گی، اور ' منتخب کریں۔ بیان کوئی قطار واپس نہیں کرے گا۔ نتیجے کے طور پر، قطار کو ٹیبل میں داخل نہیں کیا جائے گا۔ نحو ذیل میں فراہم کی گئی ہے:

داخل کریں۔ INTO [ ٹیبل - نام ] ( [ کالم 1 - نام ] ، [ کالم 2 - نام ] ، [ کالم 3 - نام ] )
منتخب کریں۔ [ قدر 1 ] ، [ قدر 2 ] ، [ قدر3 ]
کہاں نہیں موجود ہے۔ ( منتخب کریں۔ * سے [ ٹیبل - نام ] [ کالم - نام ] = [ اظہار ] ) ;

آئیے ایک مثال دیکھتے ہیں اگر صارف ملازم ٹیبل میں قدروں پر مشتمل قطار داخل کرنا چاہتا ہے ' 1 '،' امریکی 'اور' ہنریوٹ 'کالموں میں' آئی ڈی '،' کمپنی کا نام 'اور' رابطے کا نام 'بالترتیب. لیکن صرف اس صورت میں جب ایک قطار جس کی آئی ڈی ' 1 'ٹیبل میں نہیں پایا جاتا ہے یا یہ موجود نہیں ہے۔ اس مخصوص صورت میں، استفسار ہو جائے گا:



منتخب کریں۔ * سے ملازم؛

داخل کریں۔ INTO ملازم ( آئی ڈی ، کمپنی کا نام ، رابطے کا نام )
منتخب کریں۔ 1 ، 'امریکی' ، 'ہینریوٹ'
کہاں نہیں موجود ہے۔ ( منتخب کریں۔ * سے ملازم کہاں آئی ڈی = 1 ) ;

آؤٹ پٹ ایک نئی قطار دکھاتا ہے جو ' کے ساتھ قطار کے طور پر داخل نہیں کیا جاتا ہے آئی ڈی ' کے برابر ' 1 'پہلے سے موجود ہے.

ایک نئی قطار صرف اس صورت میں داخل کریں جب ڈیٹا موجود نہ ہو 'آن ڈپلیکیٹ کی اپ ڈیٹ' شق کا استعمال کرتے ہوئے

ٹھیک ہے، ایک اور طریقہ استعمال کرنا ہے ' ڈپلیکیٹ کلیدی اپ ڈیٹ پر MySQL میں شق۔ چونکہ یہ شق 'INSERT INTO' استفسار کے ساتھ استعمال کی جائے گی جس میں 'if-else' عمل درآمد ہوتا ہے۔ تو اس کا مطلب یہ ہے کہ ٹیبل کے اندر موجود ڈیٹا کو صرف اس صورت میں اپ ڈیٹ کیا جائے گا جب یہ منفرد ہو۔ دوسری صورت میں، کوئی تبدیلی نہیں ہوگی. اس کے لیے عمومی ترکیب حسب ذیل ہے:

داخل کریں۔ INTO [ ٹیبل - نام ] ( [ کالم 1 - نام ] ، [ کالم 2 - نام ] ، [ کالم 3 - نام ] ) قدریں ( [ قدر 1 ] ، [ قدر 2 ] ، [ قدر3 ] )
آن نقل چابی اپ ڈیٹ [ کالم 1 - نام ] = [ کالم 1 - نام ] ;

آئیے ایک مثال دیکھتے ہیں، قدریں داخل کرنے کے لیے ' 2 '،' پاسکل '،' نکسن '،' لندن '،' برطانیہ 'اور '(171) 555-7788 'ٹیبل میں' صارف 'کالموں کے لیے' آئی ڈی '،' پہلا نام '،' آخری نام '،' شہر '،' ملک 'اور' فون 'بالترتیب. اگر قطار پہلے سے موجود نہیں ہے، تو اسے داخل کیا جائے گا۔ دوسری صورت میں، یہ اقدار کو اپ ڈیٹ کرے گا جہاں ' آئی ڈی = آئی ڈی 'شرط پوری ہوتی ہے۔ اس استفسار کو چلائیں:

منتخب کریں۔ * سے صارف ؛
داخل کریں۔ INTO صارف ( آئی ڈی ، پہلا نام ، آخری نام ، شہر ، ملک ، فون )
قدریں ( 2 ، 'پاسکل' ، 'نکسن' ، 'لندن' ، 'برطانیہ' ، '(171) 555-7788' )
آن نقل چابی اپ ڈیٹ آئی ڈی = شناخت;

سوال چلانے سے پہلے یہ ٹیبل ہے، آپ دیکھ سکتے ہیں ' آئی ڈی ' کے برابر ' 2 ' موجود نہیں ہے:

استفسار چلانے کے بعد، یہ استفسار ٹیبل میں نئی ​​قطاریں داخل کرے گا:

آپ نے کامیابی کے ساتھ ایک نئی قطار ڈال دی ہے، کیونکہ استفسار چلانے سے پہلے ڈیٹا موجود نہیں ہے۔

نتیجہ

MySQL میں، ایک نئی قطار صرف اس صورت میں داخل کریں جب ڈیٹا پہلے سے موجود نہ ہو۔ نظر انداز کریں۔ 'بیان یا' جہاں موجود نہیں ہے۔ 'شق' میں داخل کریں۔ 'بیان. ایسا کرنے کا ایک اور طریقہ استعمال کرنا ہے ' ڈپلیکیٹ کلیدی اپ ڈیٹ پر 'شق' میں داخل کریں۔ اگر قطار پہلے سے موجود ہے تو اپ ڈیٹ کرنے کا بیان۔ بصورت دیگر، ایک نئی قطار شامل کریں۔ پوسٹ میں اس بات پر تبادلہ خیال کیا گیا ہے کہ صرف ڈیٹا موجود نہ ہونے کی صورت میں نئی ​​قطار کیسے ڈالی جائے۔