محدودیت FOREIGN KEY در SQL به منظور ایجاد ارتباط بین دو جدول و حفظ یکپارچگی دادهها استفاده میشود. این محدودیت به یک فیلد (یا گروهی از فیلدها) در یک جدول اشاره دارد که به PRIMARY KEY در جدول دیگری مرتبط است.
یک FOREIGN KEY یا کلید خارجی در اسکیوال ، در یک جدول به یک PRIMARY KEY در جدولی دیگر اشاره می کند.
- برای ارتباط بین جداول از محدودیت Foreign Key استفاده میشود و در اصل Relational Integrity را فراهم میکند.
- به عبارت ساده تر، کلید خارجی همان مقدار کلید اصلی از جدول دیگر است.
- مقدار یک کلید خارجی میتواند تکراری باشد.
حتم بخوانید: نحوه ایجاد View در SQL
فیلدهای کلید خارجی، 3 نوع محدودیت را ایجاد میکنند:
- اجازه حذف رکوردی از جدول پدر نداریم که فرزندی داشته باشد.
- اجازه insert رکورد در جدول فرزند با کد پدری که در جدول پدر موجود نیست را نداریم.
- مقدار کلید پدری را که دارای فرزند هست را نمیتوانیم تغییر دهیم.
همچنین محدودیت FOREIGN KEY از وارد کردن داده های نامعتبر در جدول جلوگیری میکند. (در فیلد foreign key) ، دلیل آن هم، این است که با مقادیر جدول دیگر که به آن اشاره می کند تطابق ندارد.
برای تعریف یک محدودیت FOREIGN KEY در دستور create table ، روی یک ستون از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Orders
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)
برای تعریف یک محدودیت FOREIGN KEY روی چند ستون از دستور SQL زیر استفاده می کنیم:
CREATE TABLE Orders
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)
محدودیت FOREIGN KEY پس از ساخته شدن جدول
برای تغییر دادن یک محدودیت FOREIGN KEY روی یک ستون از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Orders
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
برای تغییر دادن محدودیت FOREIGN KEY روی چند ستون، از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
از بین بردن FOREIGN KEY
برای از بین بردن محدودیت FOREIGN KEY ، از دستور SQL زیر استفاده می کنیم:
ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders
با دریافت « مشاوره برنامهنویسی، وب و سئو » از کارشناسان جوان حرفهای و باتجربه ساکوراد؛ موفقیت کسب و کار، رونق فروش و افزایش درآمد خود را تضمین کنید!