عبارة CONSTRAINT

هام: تمت ترجمة هذه المقالة ترجمة آلية، راجع إقرار إخلاء المسؤولية. يرجى الاطلاع على النسخة الإنجليزية من هذه المقالة. هنا للرجوع إليها.

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

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

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

بناء الجملة

قيد الحقل الواحد:

اسم القيد {"المفتاح الاساسي" | فريده | غير فارغه |
مراجع فوريججعل [(foreignfield1، foreignfield2)]
[تشغيل تتالي التحديث | تعيين NULL]
[تشغيل تتالي الحذف | تعيين NULL]}

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

اسمالقيد
{"المفتاح الاساسي" (primary1primary2 [,...]]) |
الفريده (unique1unique2 [,...]]) |
ليس قيمه خاليه (notnull1نوتنوll2 [,...]]) |
المفتاح الخارجي [لا يوجد فهرس] (ref1ref2 [,...]]) مراجع foreigntable [(foreignfield1foreignfield2 [,...]])]
[تشغيل تتالي التحديث | تعيين NULL]
[تشغيل تتالي الحذف | تعيين NULL]}

تتكون جملة CONSTRAINT من الأجزاء التالية:

الجزء

الوصف

name

اسم القيد المراد إنشاؤه.

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. على سبيل المثال، لاحظ التعريف التالي للجدول Customers (العملاء):

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

لاحظ التعريف التالي للجدول Orders (الطلبات)، الذي يقوم بتعريف علاقة المفتاح الخارجي التي تقوم بالرجوع إلى المفتاح الأساسي للجدول Customers (العملاء):

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) في الجدول Customer (العملاء)، سيتم تتالي التحديث خلال الجدول Orders (الطلبات). كما سيتم تلقائيًا تحديث كل طلب يحتوي على قيمة معرّف عميل مناظرة بالقيمة الجديدة. وتعني عبارة ON DELETE CASCADE أنه إذا تم حذف عميل من الجدول (العملاء)، سيتم أيضًا حذف كافة الصفوف الموجودة في الجدول Orders (الطلبات) والتي تحتوي على نفس قيمة معرّف العميل.

لاحظ التعريف المختلف التالي للجدول Orders (الطلبات)، والذي يستخدم الإجراء 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) في الجدول Customer (العملاء)، سيتم تلقائيًا تعيين قيم المفتاح الخارجي المقابلة في الجدول Orders (الطلبات) إلى NULL (خالية). وبشكل مماثل، تعني عبارة ON DELETE SET NULL أنه إذا تم حذف عميل من الجدول Customer (العملاء)، سيتم تلقائيًا تعيين كافة المفاتيح الخارجية المقابلة في الجدول Orders (الطلبات) إلى NULL (خالية).

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



ملاحظة: إقرار إخلاء المسؤولية للترجمة الآلية: تمت ترجمة هذه المقالة بواسطة نظام كمبيوتر دون تدخل العامل البشري. توفر Microsoft هذه الترجمات الآلية لمساعدة المستخدمين الذين لا يتحدثون الإنجليزية على استخدام منتجات Microsoft، وخدماتها، وتقنياتها والاستمتاع بها. قد تحتوي هذه المقالة على أخطاء في المفردات، أو بناء الجملة، أو القواعد نظرًا لترجمتها آليًا.

توسيع المهارات
استكشاف التدريب
الحصول على الميزات الجديدة أولاً
الانضمام إلى Office Insider

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

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

شكراً لك على الملاحظات! يبدو أنه من المفيد إيصالك بأحد وكلاء دعم Office لدينا.

×