محدودیت FOREIGN KEY در SQL
- صفحه قبلی کلید اصلی SQL
- صفحه بعدی SQL Check
محدودیت FOREIGN KEY در 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 |
لطفاً توجه داشته باشید که ستون "Id_P" در جدول "Orders" به ستون "Id_P" جدول "Persons" اشاره دارد.
ستون "Id_P" در جدول "Persons" PRIMARY KEY جدول "Persons" است.
ستون "Id_P" در جدول "Orders" FOREIGN KEY جدول "Orders" است.
FOREIGN KEY Constraint برای جلوگیری از حرکتهای مخرب بین جدولها استفاده میشود.
FOREIGN KEY Constraint میتواند از ورود دادههای غیرقانونی به ستونهای FOREIGN KEY جلوگیری کند، زیرا باید یکی از مقادیر موجود در جدول اشاره شده باشد.
FOREIGN KEY Constraint در CREATE TABLE
زیرا 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), FOREIGN KEY (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 Check