7.5 SQL - FOREIGN KEY

القيد SQL FOREIGN KEY

القيد FOREIGN KEY يُستخدم لربط جدولين معًا.

القيد FOREIGN KEY في جدول يُشير إلى PRIMARY KEY في جدول آخر، لضمان التكامل المرجعي (referential integrity).


✅ لماذا نستخدم FOREIGN KEY؟

لضمان أن القيم في العمود المُشار إليه في الجدول الثاني تكون قائمة فعلاً في الجدول الرئيسي (المصدر).


✅ الصيغة (Syntax):

🔸 عند إنشاء جدول جديد:


CREATE TABLE Orders (
  OrderID int NOT NULL,
  OrderNumber int NOT NULL,
  CustomerID int,
  FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);

🔸 أو بتسمية القيد:


CREATE TABLE Orders (
  OrderID int NOT NULL,
  OrderNumber int NOT NULL,
  CustomerID int,
  CONSTRAINT fk_customer FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);

🔧 إضافة FOREIGN KEY باستخدام ALTER TABLE:


ALTER TABLE Orders
ADD FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID);

أو مع تسمية القيد:


ALTER TABLE Orders
ADD CONSTRAINT fk_customer FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID);

❌ حذف قيد FOREIGN KEY:


ALTER TABLE Orders
DROP CONSTRAINT fk_customer;

📌 ملاحظات مهمة:

  • اسم القيد يمكن أن يكون مخصصًا باستخدام CONSTRAINT constraint_name.
  • قيد FOREIGN KEY يمنع إدخال قيمة غير موجودة في الجدول المرجعي.
  • عند حذف صف من الجدول الرئيسي، يتم رفض الحذف إذا كان هناك صف مرتبط في الجدول التابع (ما لم تُستخدم خيارات مثل ON DELETE CASCADE).

تعليقات

المشاركات الشائعة من هذه المدونة

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

Entity Framework - مقدمة عن Entity Framework