قبل از اینکه این آموزش را شروع کنیم ابتدا یک تعریف از FOREIGN KEY در واقع همان کلید خارجی را با هم مرور می کنیم.در اصل کلید خارجی پل ارتباطی بین جداول مختلف در یک پایگاه داده است.
یک FOREIGN KEY در یک جدول به یک PRIMARY KEY در جدولی دیگر اشاره می کند.برای ارتباط بین جداول از محدودیت Foreign Key استفاده میشود و در اصل Relational Integrity را فراهم میکند. به عبارت سادهتر، کلید خارجی همان مقدار کلید اصلی از جدول دیگر است.
نکته : مقدار یک کلید خارجی میتواند تکراری باشد.
فیلدهای کلید خارجی میشوند ، سه نوع محدودیت را ایجاد میکنند:
- اجازه حذف رکوردی از جدول پدر نداریم که فرزندی داشته باشد.
- اجازه insert رکورد در جدول فرزند با کد پدری که در جدول پدر موجود نیست را نداریم
- مقدار کلید پدری را که دارای فرزند هست را نمیتوانیم تغییر دهیم
همچنین محدودیت FOREIGN KEY از وارد کردن داده های نامعتبر در جدول جلوگیری میکند.(در ستون foreign key)، دلیل آن هم، این است که بامقادیر جدول دیگر که به آن اشاره می کند تطابق ندارد.
برای تعریف یک محدودیت FOREIGN KEY روی یک ستون از دستور 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 NUL
,P_Id int
,(PRIMARY KEY (O_Id)
(CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id
(REFERENCES Persons(P_Id
(