ایس کیو ال فورین کی
- صفحه قبل کلید اصلی SQL
- صفحه بعدی SQL چک
ایس کیو ال فورین کی
ایک جدول کا 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
- صفحه قبل کلید اصلی SQL
- صفحه بعدی SQL چک