SQL Server-এ চেক কনস্ট্রেইন্ট কী, এর কাজ কী এবং কীভাবে ব্যবহার করতে হয়? এই নিবন্ধে সেগুলোর উত্তর দেওয়া হয়েছে।
SQL Server-এ চেক কনস্ট্রেইন্ট কী?
SQL Server-এ (Transact-SQL) চেক কনস্ট্রেইন্ট টেবিলের প্রতিটি সারির জন্য শর্ত সংজ্ঞায়িত করার অনুমতি দেয়।
নোট
- চেক কনস্ট্রেইন্ট SQL View-এ ডিফাইন করা যায় না।
- টেবিলের চেক কনস্ট্রেইন্ট অবশ্যই সেই টেবিলের কলামকে রেফারেন্স করবে, অন্য টেবিলের কলামকে রেফারেন্স করতে পারবে না।
- চেক কনস্ট্রেইন্ট সাবকোয়েরি ব্যবহার করতে পারবে না।
- চেক কনস্ট্রেইন্ট CREATE TABLE বা ALTER TABLE কমান্ড দিয়ে ডিফাইন করা যায়।
CREATE TABLE কমান্ড দিয়ে চেক কনস্ট্রেইন্ট তৈরি
সিনট্যাক্স
CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
...
CONSTRAINT constraint_name
CHECK [ NOT FOR REPLICATION ] (condition column_name)
);
table_name - চেক কনস্ট্রেইন্ট তৈরি করতে চাওয়া টেবিলের নাম
constraint_name - চেক বাধার জন্য দিতে চাওয়া নাম
column_name - চেক কনস্ট্রেইন্ট যেটি টেবিল কলামে প্রয়োগ হবে
condition - যে শর্তটি পূরণ করতে হবে
উদাহরণ
CREATE TABLE nhanvien
(
id_nhanvien INT NOT NULL,
ho VARCHAR(50) NOT NULL,
ten VARCHAR(50),
luong MONEY,
CONSTRAINT id_nhanvien_kiemtra
CHECK (id_nhanvien BETWEEN 1 AND 10000)
);
এই উদাহরণে, CREATE TABLE স্টেটমেন্ট টেবিলে id_nhanvien_kiemtra নামক একটি চেক কনস্ট্রেইন্ট তৈরি করে। এই কনস্ট্রেইন্ট নিশ্চিত করবে যে id_nhanvien ইনফরমেশন ফিল্ডে ১ থেকে ১০০০০ এর মাঝপথে একটি মান থাকে।
এখানো একটি উদাহরণ:
CREATE TABLE nhanvien
(
id_nhanvien INT NOT NULL,
ho VARCHAR(50) NOT NULL,
ten VARCHAR(50),
luong MONEY,
CONSTRAINT luong_kiemtra
CHECK (luong > 0)
);
এই উদাহরণে টেবিলে একটি চেক কনস্ট্রেইন্ট তৈরি করা হয়েছে যা নিশ্চিত করে বেতন শূন্য থেকে বড় হবে।
ALTER TABLE কমান্ড দিয়ে চেক কনস্ট্রেইন্ট তৈরি
সিনট্যাক্স
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
CHECK (condition column_name);
table_name - চেক কনস্ট্রেইন্ট যোগ করতে চাওয়া টেবিলের নাম
constraint_name - চেক বাধার জন্য সেট করা নাম
column_name - চেক কনস্ট্রেইন্ট যেটি টেবিল কলামে প্রয়োগ হবে
condition - চেক কনস্ট্রেইন্ট যে শর্ত পূরণ করতে হবে
উদাহরণ
SQL Server-এ ALTER TABLE কমান্ড ব্যবহার করে চেক কনস্ট্রেইন্ট তৈরির একটি উদাহরণ:
ALTER TABLE nhanvien
ADD CONSTRAINT ho_kiemtra
CHECK (ho IN ('Smith', 'Anderson', 'Jonas'));
ho_kiemtra চেক কনস্ট্রেইন্ট বিদ্যমান টেবিলে তৈরি হয়েছে, যা নিশ্চিত করে কর্মীর উপনাম শুধু Smith, Anderson বা Jonas হবে।
চেক কনস্ট্রেইন্ট ডিলিট করা
সিনট্যাক্স
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
table_name - চেক কনস্ট্রেইন্ট ডিলিট করতে চাওয়া টেবিলের নাম
constraint_name - ডিলিট করতে চাওয়া চেক বাধার নাম
উদাহরণ
ALTER TABLE nhanvien
DROP CONSTRAINT ho_kiemtra;
এই কমান্ড টেবিল থেকে ho_kiemtra কনস্ট্রেইন্ট মুছে ফেলবে।
চেক কনস্ট্রেইন্ট সক্রিয় করা (Enable)
সিনট্যাক্স
ALTER TABLE table_name
WITH CHECK CHECK CONSTRAINT constraint_name;
table_name - চেক কনস্ট্রেইন্ট পুনরায় সক্রিয় করতে চাওয়া টেবিলের নাম
constraint_name - সক্রিয় করতে চাওয়া চেক কনস্ট্রেইন্টের নাম
উদাহরণ
ALTER TABLE nhanvien
WITH CHECK CHECK CONSTRAINT luong_kiemtra;
এই উদাহরণে টেবিলে luong_kiemtra চেক কনস্ট্রেইন্ট পুনরায় সক্রিয় করা হয়েছে।
চেক কনস্ট্রেইন্ট নিষ্ক্রিয় করা (Disable)
সিনট্যাক্স
ALTER TABLE table_name
NOCHECK CONSTRAINT constraint_name;
table_name - চেক কনস্ট্রেইন্ট নিষ্ক্রিয় করতে চাওয়া টেবিলের নাম
constraint_name - নিষ্ক্রিয় করতে চাওয়া চেক কনস্ট্রেইন্টের নাম
উদাহরণ
ALTER TABLE nhanvien
NOCHECK CONSTRAINT luong_kiemtra;
এই উদাহরণে টেবিলে luong_kiemtra চেক কনস্ট্রেইন্ট নিষ্ক্রিয় করা হয়েছে।