کلید خارجی (Foreign Key)
«کلید خارجی (Foreign Key)» رابطه سالم بین جدول ها را حفظ می کند. این قید، مقدار ستون فرزند را به مقدار «کلید اصلی (Primary Key)» والد محدود می کند. بنابراین، داده نامعتبر وارد نمی شود.
تعریف FOREIGN KEY هنگام ساخت جدول
در ساخت جدول می توانی کلید خارجی بگذاری. سپس هر سفارش باید به یک شخص موجود اشاره کند.
CREATE TABLE Orders (
OrderID INT NOT NULL,
OrderNumber INT NOT NULL,
PersonID INT,
PRIMARY KEY (OrderID),
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);
می توانی نام هم بدهی. همچنین می توانی چند ستون را در قید استفاده کنی.
CREATE TABLE Orders (
OrderID INT NOT NULL,
OrderNumber INT NOT NULL,
PersonID INT,
PRIMARY KEY (OrderID),
CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID)
);
افزودن FOREIGN KEY با ALTER TABLE
اگر جدول ساخته شده است، هنوز هم می توانی کلید خارجی اضافه کنی.
ALTER TABLE Orders
ADD FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);
برای نام گذاری قید و خوانایی بهتر، از CONSTRAINT استفاده کن.
ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID)
REFERENCES Persons(PersonID);
حذف FOREIGN KEY
برای حذف قید نام دار، از DROP FOREIGN KEY با نام قید استفاده کن.
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;
نکات کاربردی
- جدول فرزند به جدول والد اشاره می کند.
- کلید خارجی جلوی مقادیر بی مرجع را می گیرد.
- نام گذاری قید، نگهداری را آسان تر می کند.
نکته: ستون مرجع باید کلید اصلی باشد. همچنین مقدار فرزند باید در والد وجود داشته باشد.
مطالعه مرتبط: کلید اصلی (Primary Key) و قیود (Constraints). راهنمای کلید خارجی را نیز ببین.
جمع بندی سریع
- FOREIGN KEY رابطه معتبر می سازد.
- در CREATE و ALTER قابل تعریف است.
- برای حذف، نام قید لازم است.
- بدون والد معتبر، درج انجام نمی شود.