ফরেন কি রিলেশনশিপ থাকা অবস্থায় প্যারেন্ট টেবিল থেকে রেকর্ড ডিলিট করলে চাইল্ড টেবিলে ডেটা ইন্টিগ্রিটি বজায় রাখার দুটি প্রধান উপায় রয়েছে:
১. ON DELETE CASCADE
প্যারেন্ট টেবিল থেকে রেকর্ড ডিলিট করলে, চাইল্ড টেবিলের সম্পর্কিত সারিগুলোও স্বয়ংক্রিয়ভাবে ডিলিট হয়ে যায়।
২. ON DELETE SET NULL
প্যারেন্ট টেবিল থেকে রেকর্ড ডিলিট করলে, চাইল্ড টেবিলের সংশ্লিষ্ট ফরেন কি কলামগুলো NULL সেট হয়ে যায় (শর্ত: কলামে NULL অনুমোদিত থাকতে হবে)।
উদাহরণ
CREATE TABLE orders (
order_id INT PRIMARY KEY,
cust_id INT,
FOREIGN KEY (cust_id) REFERENCES customer(id)
ON DELETE CASCADE -- অথবা ON DELETE SET NULL
);
নির্বাচন নির্দেশিকা
- ক্যাসকেড: চাইল্ড ডেটা প্যারেন্টের অস্তিত্বের ওপর সম্পূর্ণ নির্ভরশীল হলে।
- সেট নাল: চাইল্ড রেকর্ড প্যারেন্ট ছাড়া ও স্বতন্ত্রভাবে অস্তিত্ব বজায় রাখতে পারলে।