محدودیت Foreign Key در SQL

10 / 10
از 1 کاربر

در این قسمت از طراحی سایت ، محدودیت Foreign Key را توضیح می دهیم.
یک FOREIGN KEY در یک جدول به یک PRIMARY KEY در جدولی دیگر اشاره می کند.برای ارتباط بین جداول از محدودیت Foreign Key استفاده می‌شود و در اصل Relational Integrity را فراهم می‌کند. به عبارت ساده‌تر، کلید خارجی همان مقدار کلید اصلی از جدول دیگر است.به عبارتی کلید خارجی همان مقدار کلید اصلی از جدول دیگر است.

همچنین کلید خارجی می تواند مقدار تکراری داشته باشد. Foreign Key سه نوع محدودیت را ایجاد می کند که عبارتند از:
اجازه حذف رکوردی از جدول پدر نداریم که فرزندی داشته باشد.
اجازه 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 NULL,
P_Id int,
PRIMARY KEY (O_Id),
CONSTRAINT fk_PerOrders FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
)

برای تغییر دادن یک محدودیت 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 ، از دستور SQL زیر استفاده می کنیم:

ALTER TABLE Orders
DROP CONSTRAINT fk_PerOrders

ارسال نظر و نظرات ثبت شده