SQL FOREIGN KEY কনস্ট্রেইন্ট
এক টেবিলের FOREIGN KEY
অন্য টেবিলের PRIMARY KEY
কে নির্দেশ করে। সুতরাং দুটি টেবিলের মধ্যে সংযোগ সৃষ্টি করে।
দুটি টেবিলের সংযোগ বিচ্ছিন্ন করে এমন ক্রিয়া কলাপে FOREIGN KEY
কনস্ট্রেইন্ট বাধা দেয়।
FOREIGN KEY
কনস্ট্রেইন্ট ফরেন কী কলামে অবৈধ ডেটা ইনপুটেও বাধা দেয়, কারন প্রাইমারি কী কলাম এর ভ্যালুই হলো ফরেন কি কলাম এর ভ্যালু।
চলুন একটি উদাহরণের সাহায্য FOREIGN KEY
বুঝার চেষ্টা করি। নিম্নের টেবিল দুটিতে ভালভাবে লক্ষ্য করুনঃ
নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ
আইডি নং | রোল নাম্বার | শিক্ষার্থীর নাম | প্রতিষ্ঠানের নাম | ঠিকানা |
---|---|---|---|---|
১ | ১০১ | তামজীদ হাসান | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
২ | ১০২ | মিনহাজুর রহমান | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৩ | ১০৩ | মোঃ সবুজ হোসেন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৪ | ১০৪ | ইয়াসিন হোসেন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৫ | ১০৫ | ফরহাদ উদ্দিন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
নিচের অংশটি "Student_result" টেবিল থেকে নেওয়া হয়েছেঃ
আইডি নং | রোল নাম্বার | ফলাফল |
---|---|---|
১ | ১০১ | A+ |
২ | ১০২ | A+ |
৩ | ১০৩ | A+ |
৪ | ১০৪ | A+ |
৫ | ১০৫ | A+ |
উপরের টেবিল দুটিতে লক্ষ্য করলে দেখবেন, "Student_result" টেবিলের "Roll_number" কলামটি "Student_details" টেবিলের "Roll_number" কলামকে নির্দেশ(Point) করছে।
"Student_details" টেবিলের "Roll_number" কলামটি হচ্ছে ঐ টেবিলের PRIMARY KEY
কনস্ট্রেইন্ট এবং "Student_result" টেবিলের "Roll_number" কলামটি হচ্ছে "Student_result" টেবিলের FOREIGN KEY
কনস্ট্রেইন্ট।
বিঃদ্রঃ PRIMARY KEY
এবং FOREIGN KEY
কে যথাক্রমে পিতা এবং পুত্র বলা হয়। পুত্রের কোনো কিছু প্রয়োজন হলে সে পিতার কাছেই চাই। একইভাবে FOREIGN KEY
তার প্রয়োজনে PRIMARY KEY
এর কাছে রেফার করে।
টেবিল তৈরির সময় FOREIGN KEY কনস্ট্রেইন্ট সেট করা
নিম্নের SQL স্টেটমেন্টটি "Student_result" টেবিল তৈরি করার সময় "Roll_number" কলামে একটি FOREIGN KEY
কনস্ট্রেইন্ট সেট করবেঃ
CREATE TABLE Student_result(
Id int NOT NUll,
Roll_number varchar(255) NOT NULL,
Result varchar(255) NOT NULL,
PRIMARY KEY (Id),
FOREIGN KEY (Roll_number) REFERENCES Student_details(Roll_number)
);
CREATE TABLE Student_result(
Id int NOT NUll,
Roll_number varchar(255) FOREIGN KEY REFERENCES Student_details(Roll_number),
Result varchar(255) NOT NULL
);
FOREIGN KEY
কনস্ট্রেইন্ট এর নামকরন এবং একাধিক কলামে FOREIGN KEY
কনস্ট্রেইন্ট ডিফাইন করতে নিম্নের SQL স্টেটমেন্টটি ব্যবহার করা হয়ঃ
CREATE TABLE Student_result(
Id int NOT NUll,
Roll_number varchar(255) NOT NULL,
Result varchar(255) NOT NULL,
PRIMARY KEY (Id),
CONSTRAINT link_Student_result FOREIGN KEY(Roll_number) REFERENCES Student_details(Roll_number)
);
টেবিল পরিবর্তন করার সময় FOREIGN KEY সেট করা
নিম্নের SQL স্টেটমেন্টটি "Student_result" টেবিল পরিবর্তন(modify) করার সময় "Roll_number" কলামে FOREIGN KEY
কনস্ট্রেইন্ট সেট করবেঃ
ALTER TABLE Student_result
ADD FOREIGN KEY (Roll_number)
REFERENCES Student_details(Roll_number);
FOREIGN KEY
কনস্ট্রেইন্ট এর নামকরন এবং একাধিক কলামে FOREIGN KEY
কনস্ট্রেইন্ট ডিফাইন করতে নিম্নের SQL স্টেটমেন্টটি ব্যবহার করা হয়ঃ
ALTER TABLE Student_result
ADD CONSTRAINT link_Student_result
ADD FOREIGN KEY (Roll_number)
REFERENCES Student_details(Roll_number);
FOREIGN KEY কনস্ট্রেইন্ট ডিলেট
FOREIGN KEY
কনস্ট্রেইন্টকে ডিলেট করতে নিম্নের SQL স্টেটমেন্টটি ব্যবহার করুনঃ
ALTER TABLE Student_result
DROP FOREIGN KEY link_Student_result;
ALTER TABLE Student_result
DROP CONSTRAINT link_Student_result;