SQL الخارجية العائق الرئيسي
SQL الخارجية العائق الرئيسي
مفتاح خارجي في إحدى نقاط الجدول إلى جدول مفتاح أساسي آخر.
دعونا نستخدم هذا المثال لتوضيح المفتاح الخارجي. النظر في الجدولين التاليين:
"الأشخاص" الجدول:
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
"أوامر" الجدول:
O_Id | OrderNo | P_Id |
---|---|---|
1 | 77895 | 3 |
2 | 44678 | 3 |
3 | 22456 | 2 |
4 | 24562 | 1 |
يرجى ملاحظة، الطاولة "P_Id" نقطة عمود "الأشخاص" جدول عمود "أوامر" "P_Id".
"الأشخاص" جدول عمود "P_Id" هو "الأشخاص" الجدول PRIMARY KEY.
"أوامر" جدول عمود "P_Id" هو "الأوامر" جدول المفتاح الخارجي.
يستخدم قيد FOREIGN KEY لمنع الأضرار التي لحقت العلاقة بين سلوك الجدول.
كما يمنع قيد FOREIGN KEY البيانات غير قانوني في عمود المفتاح الخارجي، فإنه يجب أن يكون واحدا لأنه يشير الى طاولة المفاوضات.
SQL الأجنبي قيد مفتاح إنشاء الجدول عندما
وSQL التالية عندما يتم إنشاء "أوامر" جدول لإنشاء قيد FOREIGN KEY على عمود "P_Id":
الخلية:
(
O_Id int NOT NULL,
OrderNo int NOT NULL,
P_Id int,
PRIMARY KEY (O_Id),
FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)
)
SQL الخادم / أوراكل / MS الوصول:
(
O_Id int NOT NULL PRIMARY KEY,
OrderNo int NOT NULL,
P_Id int FOREIGN KEY REFERENCES Persons(P_Id)
)
على سبيل المثال قيد FOREIGN KEY، وتحديد عدد وافر من عمود المفتاح الخارجي القيد، استخدم جملة SQL التالية:
ماي / SQL الخادم / أوراكل / MS الوصول:
(
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)
)
SQL الخارجية قيد مفتاح ALTER TABLE عندما
عندما تم إنشاء "أوامر" الجدول للأعمدة إنشاء قيد FOREIGN KEY "P_Id"، يرجى استخدام SQL التالية:
ماي / SQL الخادم / أوراكل / MS الوصول:
ADD FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
على سبيل المثال قيد FOREIGN KEY، وتحديد عدد وافر من عمود المفتاح الخارجي القيد، استخدم جملة SQL التالية:
ماي / SQL الخادم / أوراكل / MS الوصول:
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY (P_Id)
REFERENCES Persons(P_Id)
التراجع قيد FOREIGN KEY
إسقاط قيد FOREIGN KEY، استخدم SQL التالية:
الخلية:
DROP FOREIGN KEY fk_PerOrders
SQL الخادم / أوراكل / MS الوصول:
DROP CONSTRAINT fk_PerOrders