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

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

ایک جدول کا FOREIGN KEY دوسر جدول کا PRIMARY KEY کی طرف نکال کر رکھتا ہے.

ہم ایک مثال کے ذریعے خارجی کلید کو وضاحت دینا چاہیئم. دیکھیجئے نیچے کی دو جدولوں:

"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" جدول کا PRIMARY KEY ہے.

"Orders" جدول میں "Id_P" کلومن "Orders" جدول کا FOREIGN KEY ہے.

FOREIGN KEY قید جدولوں کے درمیان رابطوں کو توسیع نہ کرنے کی روک تھام کے لئے استعمال کی جاتی ہے.

FOREIGN KEY قید ناقص دادهوں کی داخل کاری کی روک تھام بھی کرتی ہے، کیونکہ وہ وہی جدول کی وجہ سے آئیں جو وہ وہی جدول میں موجود ہوتی ہیں.

CREATE TABLE پر FOREIGN KEY قید

در آمدی SQL "Orders" جدول کی تعمیر کے وقت "Id_P" کلومن کے لئے FOREIGN KEY قائم کرتا ہے:

MySQL:

CREATE TABLE Orders
(
Id_O int NOT NULL,
OrderNo int NOT NULL,
Id_P int,
PRIMARY KEY (Id_O),
کسی کا خارجی کلید (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)
)

محدودیت FOREIGN KEY SQL در ALTER TABLE

اگر FOREIGN KEY محدودیت برای ستون "Id_P" در جدول "Orders" موجود ایجاد می‌کنید، لطفاً از 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