مائی ایس کیو ایل میں ڈپلیکیٹ کلیدی اپ ڈیٹ پر داخل کرنے سے کیا ہوتا ہے؟

Mayy Ays Kyw Ayl My Plyky Klydy Ap Y Pr Dakhl Krn S Kya Wta



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

یہ پوسٹ ظاہر کرے گی کہ 'انسرٹ آن ڈپلیکیٹ کی اپ ڈیٹ' کیا ہے اور یہ MySQL میں کیسے کام کرتا ہے۔







مائی ایس کیو ایل میں ڈپلیکیٹ کلیدی اپ ڈیٹ پر داخل کرنے سے کیا ہوتا ہے؟

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



INSERT ON DUPLICATE KY UPDATE کی خصوصیت کو فعال کرنے کے لیے، صارفین کو نیچے دیے گئے نحو کی پیروی کرنی چاہیے:



داخل کریں۔ [ ٹیبل_نام ] ( [ col_1 ] , [ col_2 ] ،... )
قدریں ( [ val_1 ] , [ val_2 ] ،... )
ڈپلیکیٹ کلیدی اپ ڈیٹ پر [ col_1 ] = [ val_1 ] , [ col_2 ] = [ val_2 ] , ...;





ٹیبل کا نام، کالم کے نام، اور اپنی پسند کی قدریں table_name، col_1، col_2، … اور val_1، val_2، …، وغیرہ کی جگہ بتائیں۔

مثال: مائی ایس کیو ایل میں ڈپلیکیٹ کلیدی اپ ڈیٹ فیچر پر INSERT کا استعمال کیسے کریں؟



سب سے پہلے، مناسب مراعات کے ساتھ MySQL ڈیٹا بیس سے جڑیں اور پھر 'linuxhint_author' ٹیبل کا ڈیٹا حاصل کرنے کے لیے نیچے دی گئی کمانڈ پر عمل کریں:

منتخب کریں۔ * linuxhint_author سے؛

سلیکٹ کمانڈ 'linuxhint_author' ٹیبل کے تمام ریکارڈز کو بازیافت کرتی ہے۔

اب 'linuxhint_author' ٹیبل میں مخصوص ریکارڈ داخل کرنے یا اپ ڈیٹ کرنے کے لیے درج ذیل ایس کیو ایل کمانڈ کو چلائیں، جس میں 'آن ڈپلیکیٹ کی اپ ڈیٹ' فیچر فعال ہے:

linuxhint_author میں داخل کریں۔ ( آئی ڈی ، نام، عمر، مصنف کا درجہ، ای میل )
قدریں ( 6 , 'ایلکس جانسن' , 29 , 3 , 'alex@example.com' )
ڈپلیکیٹ کلیدی اپ ڈیٹ پر
نام = VALUES ( نام ) ,
عمر = قدر ( عمر ) ,
مصنف رینک = VALUES ( مصنف کا درجہ ) ,
ای میل = VALUES ( ای میل ) ;

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

آئیے ایک ڈپلیکیٹ ریکارڈ داخل کریں اور دیکھیں کہ کیسے ' ڈپلیکیٹ کلیدی اپ ڈیٹ پر MySQL میں خصوصیت کا کام:

linuxhint_author میں داخل کریں۔ ( آئی ڈی ، نام، عمر، مصنف کا درجہ، ای میل )
قدریں ( 3 , 'مائیکل جانسن' , 28 , 4 , 'michael@example.com' )
ڈپلیکیٹ کلیدی اپ ڈیٹ پر
نام = VALUES ( نام ) ,
عمر = قدر ( عمر ) ,
مصنف رینک = VALUES ( مصنف کا درجہ ) ,
ای میل = VALUES ( ای میل ) ;

ذیل کے ٹکڑوں سے، یہ واضح طور پر دیکھا جا سکتا ہے کہ پہلے سے موجود ریکارڈ کو نئی اقدار کے ساتھ کامیابی کے ساتھ اپ ڈیٹ کر دیا گیا ہے۔

'ڈپلیکیٹ کلید پر داخل کریں' خصوصیت کو پورے ریکارڈ کی بجائے مخصوص کالم پر بھی لاگو کیا جا سکتا ہے:

linuxhint_author میں داخل کریں۔ ( آئی ڈی ، مصنف رینک )
قدریں ( 3 , 2 )
ڈپلیکیٹ کلیدی اپ ڈیٹ پر مصنف رینک = قدریں۔ ( مصنف کا درجہ ) ;

مندرجہ بالا کوڈ میں، '3' ID والے مصنف کی 'authorRank' کو ایک نئی قدر '2' میں اپ ڈیٹ کیا جا رہا ہے:

ایس کیو ایل میں 'انسرٹ آن ڈپلیکیٹ کی اپ ڈیٹ' فیچر اس طرح کام کرتا ہے۔

نتیجہ

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