شرح صفوف ومحتوى الفقرة
يمكنك توجيه محرك 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
);