ایس کیو ایل فورین کی کونسٹریکشن

ایس کیو ایل فورین کی کونسٹریکشن

ایک جدول کا بیرونی کلید دوسرے جدول کا پریماری کلید کی طرف پوائنٹنگ کرتا ہے۔

ایک مثال کی مدد سے بیرونی کلید کا وضاحت کریں. دیکھئے نیچے کئی جدول:

"Persons" جدول:

Id_P LastName FirstName آدرس شہر
1 اڈمز جون اوسفورڈ سٹریٹ لندن
2 بوش جورج پانچ اوریو نیو یارک
3 کارٹر توماس چانگ آن جیٹ بجنگ

"Orders" جدول:

Id_O OrderNo Id_P
1 77895 3
2 44678 3
3 22456 1
4 24562 1

توجہ دے کہ "Orders" میں "Id_P" سلسلہ "Persons" جدول کا "Id_P" سلسلے کی طرف پوائنٹنگ کرتا ہے۔

"Persons" جدول میں "Id_P" سلسلہ "Persons" جدول کا پریماری کلید ہے۔

"Orders" جدول میں "Id_P" سلسلہ "Orders" جدول کا بیرونی کلید ہے۔

بنیادی کلید خارجی کی محدودیت کا استعمال جدولوں کے درمیان کی رابطہ کی تباہی کی روک تھام کے لئے ہوتا ہے۔

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

CREATE TABLE پر SQL FOREIGN KEY Constraint

بنیادی کلید خارجی (Id_P) کا "Orders" جدول کی تعمیر کے دوران قائم کیا گیا ہے:

MySQL:

CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
FOREIGN KEY (Id_P) REFERENCES Persons(Id_P)
)

SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
Id_O int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
Id_P int FOREIGN KEY REFERENCES Persons(Id_P)
)

ਜੇਕਰ ਤੁਸੀਂ FOREIGN KEY ਸੰਕਲਪ ਦਾ ਨਾਮ ਦੇਣਾ ਚਾਹੁੰਦੇ ਹੋ ਅਤੇ ਕਈ ਸਿਰਲੇਖਾਂ 'ਤੇ FOREIGN KEY ਸੰਕਲਪ ਦਿੰਦੇ ਹੋ, ਤਾਂ ਹੇਠ ਲਿਖੇ SQL ਗਰੰਟੀ ਵਰਤੋਂ ਕਰੋ:

MySQL / SQL Server / Oracle / MS Access:

CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)
)

ALTER TABLE ਉੱਤੇ SQL FOREIGN KEY Constraint

ਜੇਕਰ "Orders" ਸਿਰਲੇਖ 'ਤੇ "Id_P" ਸਿਰਲੇਖ ਵਾਸਤੇ FOREIGN KEY ਸੰਕਲਪ ਦਿੰਦੇ ਹੋ, ਤਾਂ ਹੇਠ ਲਿਖੇ SQL ਦਖਲ ਵਰਤੋਂ ਕਰੋ:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)

ਜੇਕਰ ਤੁਸੀਂ FOREIGN KEY ਸੰਕਲਪ ਦਾ ਨਾਮ ਦੇਣਾ ਚਾਹੁੰਦੇ ਹੋ ਅਤੇ ਕਈ ਸਿਰਲੇਖਾਂ 'ਤੇ FOREIGN KEY ਸੰਕਲਪ ਦਿੰਦੇ ਹੋ, ਤਾਂ ਹੇਠ ਲਿਖੇ SQL ਗਰੰਟੀ ਵਰਤੋਂ ਕਰੋ:

MySQL / SQL Server / Oracle / MS Access:

ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (Id_P)
REFERENCES Persons(Id_P)

FOREIGN KEY ਸੰਕਲਪ ਰੱਦ ਕਰੋ

ਜੇਕਰ ਤੁਸੀਂ FOREIGN KEY ਸੰਕਲਪ ਰੱਦ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਹੇਠ ਲਿਖੇ SQL ਦਖਲ ਵਰਤੋਂ ਕਰੋ:

MySQL:

ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders

SQL Server / Oracle / MS Access:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders