انتقل إلى محتوى الدرس

CASCADE and SET NULL Actions أفعال CASCADE و SET NULL

تعلّم قيد المفتاح الأجنبي FOREIGN KEY والتكامل المرجعي بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
1 صفوف تعليمية
MySQL
8 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

يمكنك توجيه محرك InnoDB لتنفيذ إجراء تلقائي على سجلات الابن عند حذف السجل الأب أو تحديث مفتاحه:

  • الحذف المتسلسل ON DELETE CASCADE: يحذف تلقائياً جميع سجلات الابن المرتبطة فور حذف السجل الأب (مناسب للبيانات التابعة كلياً مثل بنود الفاتورة أو جلسات الدخول).
  • تفريغ المرجع ON DELETE SET NULL: يحوّل قيمة المفتاح الأجنبي في الابن إلى NULL عند حذف الأب مع الإبقاء على سجل الابن محفوظاً. تنبيه: يشترط هذا الخيار أن يكون عمود الابن قابلاً للفراغ (NULL وليس NOT NULL).
SQL
CREATE TABLE blog_posts (
    post_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    author_id BIGINT UNSIGNED NULL,
    title VARCHAR(150) NOT NULL,
    PRIMARY KEY (post_id),
    CONSTRAINT fk_posts_author
        FOREIGN KEY (author_id) REFERENCES customers (id)
        ON DELETE SET NULL
        ON UPDATE CASCADE
);