✏️ Explanatory Question
Foreign Key-এর সাথে ব্যবহৃত দুটি গুরুত্বপূর্ণ referential action।
Parent টেবিলের row delete হলে child টেবিলের সংশ্লিষ্ট foreign key column-এর মান NULL হয়ে যায়।
Parent টেবিলের row delete হলে child টেবিলের সংশ্লিষ্ট সব row স্বয়ংক্রিয়ভাবে delete হয়ে যায়।
| বৈশিষ্ট্য | ON DELETE SET NULL | ON DELETE CASCADE |
|---|---|---|
| প্রভাব | Child row-এর FK NULL হয় | Child row delete হয় |
| ডেটা সংরক্ষণ | Child data থাকে | Child data হারিয়ে যায় |
| Foreign Key requirement | FK column NULL allow করতে হবে | NULL আবশ্যক নয় |
| ব্যবহার | History/record রাখতে চাইলে | সম্পূর্ণ মুছে ফেলতে চাইলে |
-- ON DELETE SET NULL
CREATE TABLE Employee (
emp_id INT PRIMARY KEY,
emp_name VARCHAR(50),
dept_id INT,
FOREIGN KEY (dept_id) REFERENCES Department(dept_id)
ON DELETE SET NULL
);
-- ON DELETE CASCADE
CREATE TABLE Enrollment (
enroll_id INT PRIMARY KEY,
student_id INT,
course_name VARCHAR(50),
FOREIGN KEY (student_id) REFERENCES Student(student_id)
ON DELETE CASCADE
);