ایس کیو ایل داخل کریں ڈپلیکیٹ کلید کو نظر انداز کریں۔

Mysql Insert Ignore Duplicate Key



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

نحو:

یہاں INSERT IGNORE استفسار کے لیے نحو ہے۔







>>جدول کا نام داخل کریں۔(col1 ، col2 ، col3)قیمتیں(قدر کی فہرست)،(قدر کی فہرست)،(قدر کی فہرست)؛

ورک بینچ کے ذریعے اگنور داخل کریں:

اپنے سسٹم سے اپنا ایس کیو ایل ورک بینچ 8.0 کھولیں اور اسے ڈیٹا بیس مثال سے جوڑیں۔





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





>>ٹیبل ملازم بنائیں۔(آئی ڈی پرائمری کلید نٹ ، نام ورچر۔(پچاس)کم نہیں ، عمر ورچار۔(پچاس)، تنخواہ ورچار۔(پچاس)، انوکھا۔(آئی ڈی))؛

تخلیق پر ، آپ ٹیبل ملازم کو فہرست میں ڈیٹا بیس ڈیٹا کے نیچے ٹیبلز کے آپشن کے تحت تلاش کر سکتے ہیں۔



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

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

جیسا کہ آپ دیکھ سکتے ہیں ، استفسار کامیابی کے ساتھ عمل میں لایا گیا ہے اور ریکارڈ ڈیٹا بیس اور اس کے ٹیبل ملازم میں محفوظ ہو گئے ہیں۔ اگر ہم نے کالم آئی ڈی میں کوئی ڈپلیکیٹ ویلیو شامل کی ہوتی تو اس سے ایک خرابی پیدا ہوتی۔ ختم بٹن پر ٹیپ کریں۔

یہ سب گرڈ ویو کے بارے میں تھا۔ اب ، ہم استفسار کے علاقے کے ذریعے ریکارڈ داخل کریں گے۔ دریں اثنا ، ہم آؤٹ پٹ چیک کرنے کے لیے اس بار ڈپلیکیٹ ریکارڈ داخل کر رہے ہیں۔ لہذا ، ہم نے درج ذیل INSERT استفسار کی کوشش کی ہے ، جہاں ہمارے پاس اقدار کی دو فہرستیں ہیں۔ اقدار کی دونوں فہرستیں کالم 'ID' میں ایک جیسی ہیں۔ استفسار کو منتخب کرنے کے لیے فلیش سائن کو دبائیں۔

استفسار صحیح طریقے سے کام نہیں کرے گا ، اور یہ تصویر میں دکھائے گئے INSERT کمانڈ میں نقل شدہ اقدار کی وجہ سے غلطی پیدا کرے گا۔

اب مذکورہ بالا استفسار کو INSERT IGNORE شق کے ساتھ آزمائیں اور جیسا کہ پیش کیا گیا ہے اس پر عمل کریں۔

آپ دیکھ سکتے ہیں کہ یہ آؤٹ پٹ ایریا میں غلطی پیدا نہیں کرتا ، لیکن یہ ایک انتباہ دیتا ہے کہ کمانڈ ڈپلیکیٹ اقدار پر مشتمل ہے۔

ٹیبل ملازم کے گرڈ ویو کو ریفریش کریں۔ INSERT IGNORE استفسار نے آدھا کام کیا ہے۔ اس نے جدول میں اقدار کی پہلی فہرست داخل کی ، لیکن اقدار کی دوسری فہرست کو بار بار قیمت 13 کی وجہ سے نظر انداز کردیا گیا۔

کمانڈ لائن شیل کے ذریعے اگنور داخل کریں:

اس تصور کو سمجھنے کے لیے آئیے آپ کے سسٹم میں MySQL کمانڈ لائن کلائنٹ شیل کھولیں۔ پوچھنے پر ، اس پر کام شروع کرنے کے لیے اپنا ایس کیو ایل پاس ورڈ ٹائپ کریں۔

اب وقت آگیا ہے کہ ایک میز بنائیں۔ ایسا کرنے کے لیے نیچے دی گئی کمانڈ کو آزمائیں۔ ہم نے ایک ٹیبل بنایا ہے جس کا نام ہے 'وزیر' جبکہ اس کے کالموں میں سے ایک منفرد رکاوٹ ہے۔ یہ واضح ہے کہ کالم ID صرف منفرد اقدار کو قبول کرے گا نہ کہ ڈپلیکیٹ اقدار کو۔

>>ٹیبل ڈیٹا بنائیں۔(مڈ انٹر پرائمری کلی منفرد نہیں ہے ، نام VARCHAR۔(چار پانچ)، سٹی ورچار۔(چار پانچ))؛

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

چونکہ کالم آئی ڈی منفرد ہے ، جب ہم کمانڈ لائن شیل پر نیچے دی گئی ہدایات کو آزمائیں گے تو یہ ایک خرابی پیدا کرے گا۔ اس کی وجہ یہ ہے کہ ہم نے پچھلی استفسار میں 11 کی قیمت شامل کی ہے ، اور منفرد کلید کی وجہ سے یہ ہمیں بار بار قیمت شامل کرنے کی اجازت نہیں دیتا۔

لہذا ، ٹیبل کو چیک کرنے پر ، ہم دیکھ سکتے ہیں کہ ٹیبل میں پہلی INSERT استفسار کے ذریعہ صرف 1 ریکارڈ شامل کیا گیا ہے۔

>>منتخب کریں*data.minister سے

اس کے برعکس ، اگر آپ INSERT IGNORE شق استعمال کر رہے ہیں تو ، غلط اعداد و شمار کی قطاریں جو غلطی کو متحرک کرتی ہیں نظر انداز کی جائیں گی اور صرف درست درج کریں گی۔ نیچے دی گئی کمانڈ میں ، ہم INSERT IGNORE کمانڈ استعمال کر رہے ہیں تاکہ ٹیبل میں بار بار اقدار شامل کرنے سے بچیں اور غلطی کو نظر انداز کریں۔ جیسا کہ آپ دیکھ سکتے ہیں ، اقدار کی پہلی فہرست میں ڈپلیکیٹ ویلیو 11 ہے جیسا کہ پچھلے استفسار میں ہے۔ جبکہ اقدار کی دوسری فہرست منفرد ہے ، یہ ٹیبل میں داخل کردہ 1 ریکارڈ دکھائے گی ، جو اقدار کی دوسری فہرست ہے۔ MySQL یہ بھی بتاتا ہے کہ صرف 1 ریکارڈ داخل کیا گیا ہے ، اور پیغام میں 1 انتباہ پیدا کیا گیا ہے۔ پھر آپ یہ فرض کر سکتے ہیں کہ اگر ہم INSERT IGNORE شق استعمال کر رہے ہیں تو MySQL ایک انتباہ فراہم کرتا ہے۔

جیسا کہ آپ نیچے آؤٹ پٹ سے دیکھ سکتے ہیں ، ہمارے پاس اس جدول میں صرف دو ریکارڈ ہیں the مذکورہ بالا استفسار میں فراہم کردہ اقدار کی پہلی فہرست ، جسے نظر انداز کیا گیا ہے۔

>>منتخب کریں*data.minister سے

نتیجہ:

ہم نے MySQL ورک بینچ اور MySQL کمانڈ لائن کلائنٹ شیل کے ذریعے ڈپلیکیٹ اقدار پر INSERT IGNORE کی تمام ضروری مثالیں کی ہیں۔