ایس کیو ایل غیر ملکی کلیدی رکاوٹوں کا استعمال کیسے کریں۔

How Use Mysql Foreign Key Constraints



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

غیر ملکی کلیدی رکاوٹوں کی خصوصیات:

غیر ملکی کلیدی رکاوٹ کی کچھ اہم خصوصیات ذیل میں بیان کی گئی ہیں۔







  • چائلڈ ٹیبل میں استعمال ہونے والی غیر ملکی کلید کا ڈیٹا ٹائپ بنیادی کلید کے ڈیٹا ٹائپ کے ساتھ ایک جیسا ہونا چاہیے جو کہ پیرنٹ ٹیبل میں غیر ملکی کلید کا حوالہ دینے کے لیے استعمال ہوتا ہے۔
  • کوئی بھی انڈیکس کالم یا ایک سے زیادہ کالم صرف InnoDB ٹیبل کے لیے غیر ملکی کلید کے طور پر حوالہ دیا جا سکتا ہے۔
  • غیر ملکی کلید بنانے کے لیے حوالہ جات کی مراعات یا SELECT ، INSERT ، UPDATE اور DELETE بیانات میں سے کم از کم ایک استحقاق درکار ہے۔
  • غیر ملکی کلید دو طریقوں سے بنائی جا سکتی ہے۔ ایک CREATE بیان کا استعمال کرتے ہوئے اور دوسرا ALTER بیان استعمال کر کے۔

شرط:

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



بنانا ڈیٹا بیس کتب خانہ؛
استعمال کریں۔ کتب خانہ؛

بنانا ٹیبل کتابیں(
آئی ڈی INT نہیں خالی خودکار اضافہ ،
عنوان ورچار (پچاس) نہیں خالی ،
مصنف ورچار (پچاس) نہیں خالی ،
ناشر ورچار (پچاس) نہیں خالی ،
بنیادی چابی (آئی ڈی)
) انجن۔ = INNODB۔ ؛

بنانا ٹیبل قرض لینے والے(
آئی ڈی ورچار (پچاس) نہیں خالی ،
نام ورچار (پچاس) نہیں خالی ،
پتہ ورچار (پچاس) نہیں خالی ،
ای میل ورچار (پچاس) نہیں خالی ،
بنیادی چابی (آئی ڈی)
) انجن۔ = INNODB۔ ؛



CREATE بیان کا استعمال کرتے ہوئے غیر ملکی کلیدی رکاوٹ کی وضاحت کریں۔

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





بنانا ٹیبل book_borrow_info(
ادھار_ آئی ڈی ورچار (پچاس)،
book_id INT ،
ادھار_ تاریخ DATE نہیں خالی ،
واپسی کی تاریخ DATE نہیں خالی ،
حالت ورچار (پندرہ) نہیں خالی ،
انڈیکس۔ par_ind(book_id)،
بنیادی چابی (ادھار_ آئی ڈی،ادھار_ تاریخ)،
غیر ملکی چابی (book_id) حوالہ جات کتابیں(آئی ڈی)
پر حذف کریں CASCADE
پر اپ ڈیٹ CASCADE
) انجن۔ = INNODB۔ ؛

اب ، دونوں جدولوں میں کچھ ریکارڈ داخل کرنے کے لیے درج ذیل SQL بیانات چلائیں۔ پہلا INSERT بیان چار ریکارڈ داخل کرے گا۔ کتابیں ٹیبل. کی چار اقدار۔ آئی ڈی کا میدان کتابیں ٹیبل آٹو انکریمنٹ وصف کے لیے 1 ، 2 ، 3 اور 4 ہوگا۔ دوسرا INSERT بیان چار ریکارڈ داخل کرے گا۔ book_borrow_info کی بنیاد پر آئی ڈی کی قدر کتابیں ٹیبل.



داخل کریں INTO کتابیں قیمتیں
( خالی ، 'معصوم کو مارنا'، 'ہارپر لی'، 'گرینڈ سنٹرل پبلشنگ')،
( خالی ، 'تنہائی کے سو سال'، 'گارسیا مارکیز'، 'لطفی اوزکوک')،
( خالی ، 'ہندوستان کے لیے ایک راستہ'، 'فورسٹر ، E.M.'، 'بی بی سی ہلٹن پکچر لائبریری')،
( خالی ، 'پوشیدہ آدمی'، 'رالف ایلیسن'، 'انسائیکلوپیڈیا برٹانیکا ، انکارپوریٹڈ')؛

داخل کریں INTO book_borrow_info قیمتیں
('123490'، ، 2020-02-15، 2020-02-25، 'لوٹا')،
('157643'، ، '2020-03-31'، '2020-03-10'، 'زیر التوا')،
('174562'، ، '2020-04-04'، 2020-04-24، 'ادھار')،
('146788'، ، '2020-04-10'، '2020-01-20'، 'ادھار')؛

اگر آپ چائلڈ ٹیبل کے غیر ملکی کلیدی فیلڈ میں ایک ویلیو داخل کرنے کی کوشش کرتے ہیں جو کہ بنیادی ٹیبل کے بنیادی کلیدی فیلڈ میں موجود نہیں ہے تو MySQL ایک غلطی پیدا کرے گا۔ مندرجہ ذیل SQL بیان ایک غلطی پیدا کرے گا کیونکہ پیرنٹ ٹیبل ، کتابیں آئی ڈی کی کوئی قیمت نہیں ہے 10۔ .

داخل کریں INTO book_borrow_info قیمتیں
(195684، 10۔، 2020-04-15، '2020-04-30'، 'لوٹا')؛

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

حذف کریں سے کتابیں کہاں آئی ڈی= ؛
منتخب کریں * سے کتابیں؛
منتخب کریں * سے book_borrow_info؛

ALTER بیان کا استعمال کرتے ہوئے غیر ملکی کلیدی رکاوٹ کی وضاحت کریں۔

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

داخل کریں INTO قرض لینے والے قیمتیں
('123490'، 'پیٹرک ووڈ'، '34 ویسٹ اسٹریٹ LANCASTER LA14 9ZH '، '[ای میل محفوظ]')،
('157643'، 'عذرا مارٹن'، '10 گرو برمنگھم B98 1EU '، '[ای میل محفوظ]')،
('174562'، 'جان انیس آرچی'، '55 مین روڈ LIVERPOOL L2 3OD '، '[ای میل محفوظ]')،
('146788'، 'فریڈرک ہینسن'، '85 ہائی فیلڈ روڈ شریوسبری SY46 3ME '، '[ای میل محفوظ]')؛

درج ذیل کو چلائیں۔ عمر ایک اور غیر ملکی کلیدی رکاوٹ قائم کرنے کا بیان۔ book_borrow_info رشتہ بنانے کے لیے میز قرض لینے والے ٹیبل. یہاں ، ادھار_ آئی ڈی کے لیے غیر ملکی کلید کے طور پر بیان کیا جاتا ہے۔ book_borrow_info ٹیبل.

ALTER TABLE book_borrow_info ADF CONSTRAINT fk_borrower شامل کریں۔
غیر ملکی چابی(ادھار_ آئی ڈی)حوالہ جات قرض لینے والے۔(آئی ڈی)تازہ ترین پابندی پر حذف کیسکیڈ پر

اب ، ایک ریکارڈ داخل کریں۔ book_borrow_info درست کے ساتھ ادھار_ آئی ڈی قدر جس میں موجود ہے آئی ڈی کا میدان قرض لینے والے ٹیبل. 157643۔ قیمت قرض لینے والے جدول میں موجود ہے اور درج ذیل INSERT بیان کو کامیابی کے ساتھ انجام دیا جائے گا۔

داخل کریں INTO book_borrow_info قیمتیں
('157643'، ، '2020-03-10'، '2020-03-20'، 'لوٹا')؛

درج ذیل INSERT بیان غلطی کا پیغام پیدا کرے گا کیونکہ آئی ڈی ویلیو۔ 195680۔ قرض دہندگان کی میز میں موجود نہیں ہے۔

داخل کریں INTO book_borrow_info قیمتیں
('195680'، ، 2020-04-15، '2020-04-30'، 'لوٹا')؛

نتیجہ:

غیر ملکی کلیدی رکاوٹوں کو صحیح طریقے سے بیان کرنا ایک متعلقہ ڈیٹا بیس بنانے اور جدولوں کے درمیان ڈیٹا کو مناسب طریقے سے منظم کرنے کے لیے ایک بہت اہم کام ہے۔ غیر ملکی کلیدی رکاوٹوں کے استعمال کو جاننا ڈیٹا بیس ڈیزائنرز کے لیے بہت ضروری ہے۔ مجھے امید ہے کہ یہ مضمون نئے ڈیٹا بیس ڈیزائنرز کو غیر ملکی کلیدی رکاوٹوں کے تصور کو سمجھنے اور انہیں اپنے کاموں میں مناسب طریقے سے لاگو کرنے میں مدد دے گا۔