تخطي إلى المحتوى الرئيسي
الدعم
تسجيل الدخول باستخدام حساب Microsoft
تسجيل الدخول أو إنشاء حساب.
مرحباً،
تحديد استخدام حساب مختلف!
لديك حسابات متعددة
اختر الحساب الذي تريد تسجيل الدخول باستخدامه.

يتشابه قيد مع فهرس، على الرغم من إمكانية استخدامه في إنشاء علاقة مع جدول آخر.

يمكنك استخدام عبارة CONSTRAINT في جمل ALTER TABLE وCREATE TABLE لإنشاء قيود أو حذفها. يوجد نوعان من عبارات CONSTRAINT: واحدة لإنشاء قيد في حقل واحد وواحدة لإنشاء قيد في أكثر من حقل.

ملاحظة: لا يدعم مشغل قاعدة بيانات Microsoft Access استخدام CONSTRAINT، أو أي من عبارات لغة تعريف البيانات، مع قواعد بيانات غير Microsoft Access. استخدم أساليب إنشاء DAO بدلاً من ذلك.

بناء الجملة

قيد أحادي الحقل:

CONSTRAINT name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreigntable [(foreignfield1, foreignfield2)]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]}

قيد متعدد الحقول:

CONSTRAINT name
{PRIMARY KEY (primary1[, primary2 [, ...]]) |
UNIQUE (unique1[, unique2 [, ...]]) |
NOT NULL (notnull1[, notnull2 [, ...]]) |
FOREIGN KEY [NO INDEX] (ref1[, ref2 [, ...]]) REFERENCES foreigntable [(foreignfield1 [, foreignfield2 [, ...]])]
[ON UPDATE CASCADE | SET NULL]
[ON DELETE CASCADE | SET NULL]}

تحتوي عبارة CONSTRAINT على هذه الأجزاء:

الجزء

الوصف

الاسم

اسم القيد المطلوب إنشاؤه.

primary1، primary2

اسم الحقل أو الحقول المطلوب تخصيصها باعتبارها مفتاح أساسي.

unique1، unique2

اسم الحقل أو الحقول المطلوب تخصيصها باعتبارها مفتاحاً فريداً.

notnull1، notnull2

اسم الحقل أو الحقول التي يتم تقييدها إلى قيم غير خالية.

ref1، ref2

اسم حقل أو حقول مفتاح خارجي التي تشير إلى حقول في جدول آخر.

foreigntable

اسم جدول المفاتيح الخارجية التي تحتوي على الحقل أو الحقول المحددة بواسطة foreignfield.

foreignfield1، foreignfield2

اسم الحقل أو الحقول في foreigntable المحدد بواسطة ref1، ref2. يمكنك حذف هذه العبارة إذا كان الحقل المُشار إليه هو المفتاح الأساسي الذي يخص foreigntable.


ملاحظات

استخدم بناء الجملة لقيد أحادي الحقل في عبارة تعريف الحقل من جملة ALTER TABLE أو CREATE TABLE مباشرة بعد مواصفات نوع بيانات الحقل.

استخدم بناء الجملة لقيد متعدد الحقول عند استخدام CONSTRAINT كلمة محجوزة خارج عبارة تعريف حقل في عبارة ALTER TABLE أو CREATE TABLE

استخدام CONSTRAINT يمكنك من تعيين حقل كأحد أنواع القيود التالية:

  • يمكنك استخدام الكلمة المحجوزة في UNIQUE لتعيين حقل كمفتاح فريد. هذا يعني أنه لا يوجد سجلين في الجدول بنفس القيمة في هذا الحقل. يمكنك تقييد أي حقل أو قائمة حقول باعتبارها فريداً. إذا تم تعيين قيد متعدد الحقول كمفتاح فريد، يجب أن تكون القيم المدمجة لكل الحقول في الفهرس فريدة، حتى إذا أحتوى سجلين أو أكثر على نفس القيمة في واحد من الحقول.

  • يمكنك استخدام الكلمات المحجوزة في "PRIMARY KEY" لتعيين حقل أو مجموعة الحقول في جدول كمفتاح أساسي. يجب أن تكون كل القيم في المفتاح الأساسي فريدة وليست Null، ومن الممكن وجود مفتاح أساسي واحد فقط لأحد الجداول.

    ملاحظة: لا تقم بتعيين قيد ‏PRIMARY KEY في جدول يحتوي بالفعل على مفتاح ‏أساسي؛ إذا فعلت ذلك، يحدث خطأ.‏

  • يمكنك استخدام الكلمات المحجوزة في "FOREIGN KEY" لتعيين حقل كمفتاح خارجي. إذا كان المفتاح الأساسي للجدول الخارجي يتكون من أكثر من حقل، يجب استخدام تعريف قيد متعدد الحقول، وسرد كافة حقول المراجع واسم الجدول الخارجي وأسماء الحقول المُشار إليها في الجدول الخارجي بنفس ترتيب سرد حقول المراجع. إذا كان الحقل أو الحقول المُشار إليها هي مفتاح أساسي للجدول الخارجي، لا يجب تحديد الحقول المُشار إليها. بشكل افتراضي، يعمل مشغل قاعدة البيانات بافتراض أن المفتاح الأساسي للجدول الخارجي هو الحقول المشار إليها.

    تقوم قيود المفاتيح الخارجية بتعريف إجراءات معينة ليتم تنفيذها عند تغيير قيمة مفتاح أساسي مقابل:

  • يمكنك تحديد الإجراءات المطلوب تنفيذها في جدول المفاتيح الخارجية استناداً إلى إجراء مقابل تم تنفيذه في مفتاح أساسي بالجدول الذي يتم تعريف CONSTRAINT فيه. على سبيل المثال، اطلع على التعريف التالي لجدول "العملاء":‏

CREATE TABLE Customers (CustId INTEGER PRIMARY KEY, CLstNm NCHAR VARYING (50))

ضع في اعتبارك التعريف التالي لجدول "الطلبات"، الذي يُعرف علاقة مفتاح خارجي تشير إلى المفتاح الأساسي لجدول "العملاء":

CREATE TABLE Orders (OrderId INTEGER PRIMARY KEY, CustId INTEGER, OrderNotes NCHAR VARYING (255), CONSTRAINT FKOrdersCustId FOREIGN KEY (CustId) REFERENCES Customers ON UPDATE CASCADE ON DELETE CASCADE

يتم تعريف كل من ON UPDATE CASCADE وعبارة ON DELETE CASCADE على المفتاح الخارجي. تعني عبارة ON UPDATE CASCADE أنه إذا تم تحديث معرف العميل (CustId) في جدول العميل، فسيتم تسلسل التحديث من خلال جدول الطلبات. سيتم تحديث كل طلب يحتوي على قيمة معرف عميل مقابلة تلقائيا بالقيمة الجديدة. تعني عبارة ON DELETE CASCADE أنه إذا تم حذف عميل من جدول العميل، فسيتم أيضا حذف جميع الصفوف في جدول الطلبات التي تحتوي على نفس قيمة معرف العميل.

اطلع على التعريف المختلف التالي لجدول "الطلبات"، الذي يستخدم إجراء SET NULL بدلاً من إجراء CASCADE:

CREATE TABLE Orders (OrderId INTEGER PRIMARY KEY, CustId INTEGER, OrderNotes NCHAR VARYING (255), CONSTRAINT FKOrdersCustId FOREIGN KEY (CustId) REFERENCES Customers ON UPDATE SET NULL ON DELETE SET NULL

تشير عبارة ON UPDATE SET NULL إلى أنه إذا تم تحديث معرف أحد العملاء (CustId) في جدول العملاء، فسيتم تلقائياً تعيين القيم المقابلة للمفتاح الخارجي في جدول "الطلبات" على القيمة NULL. بالمثل، تشير عبارة ON DELETE SET NULL إلى أنه إذا تم حذف أحد العملاء من جدول "العملاء"، فسيتم تلقائياً تعيين المفاتيح الخارجية المقابلة في جدول "الطلبات" على القيمة "NULL".

لمنع الإنشاء التلقائي لفهارس المفاتيح الخارجية، يمكن استخدام المعدل "NO INDEX". لا يجب استخدام نموذج تعريف المفتاح الخارجي هذا إلا في الحالات التي يتم فيها عادةً تكرار قيم الفهرس الناتجة. إذا كانت القيم الموجودة في فهرس مفتاح خارجي تتكرر بشكل معتاد، يمكن أن يكون استخدام فهرس أقل فعالية من إجراء فحص الجداول. تؤدي صيانة هذا النوع من الفهارس، بصفوف مُدرجة ومحذوفة من الجدول، إلى تراجع الأداء ولا تقدم أي ميزة.



هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.

تساعدك المجتمعات على طرح الأسئلة والإجابة عليها، وتقديم الملاحظات، وسماعها من الخبراء ذوي الاطلاع الواسع.

هل كانت المعلومات مفيدة؟

ما مدى رضاك عن جودة اللغة؟
ما الذي أثّر في تجربتك؟
بالضغط على "إرسال"، سيتم استخدام ملاحظاتك لتحسين منتجات Microsoft وخدماتها. سيتمكن مسؤول تكنولوجيا المعلومات لديك من جمع هذه البيانات. بيان الخصوصية.

نشكرك على ملاحظاتك!

×