যদি একটি কলামে শুধু কিছু নির্দিষ্ট মান গ্রহণ করতে দিতে চান, তবে MySQL-এ ENUM ডেটা টাইপ ব্যবহার করুন। এটি স্টোরেজ বাঁচায় এবং ডেটা ইন্টিগ্রিটি নিশ্চিত করে।
ENUM কলামসহ টেবিল তৈরি
mysql> create table DemoTable838(Color ENUM('RED','GREEN','BLUE'));
Query OK, 0 rows affected (0.67 sec)
ডেটা ইনসার্ট
ENUM-এ মান বড় হাতের অক্ষরে (case-insensitive) ইনসার্ট করা যায়, কিন্তু স্টোর হয় সংজ্ঞা অনুযায়ী:
mysql> insert into DemoTable838 values('RED');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable838 values('Green');
Query OK, 1 row affected (0.64 sec)
mysql> insert into DemoTable838 values('Blue');
Query OK, 1 row affected (0.88 sec)
রেকর্ড দেখানো
mysql> select * from DemoTable838;
আউটপুট (মানের বড় হাতের অক্ষরে প্রদর্শিত হবে):
+-------+ | Color | +-------+ | RED | | GREEN | | BLUE | +-------+ 3 rows in set (0.00 sec)
ENUM-এর সুবিধা ও সীমাবদ্ধতা
- সুবিধা: কয়েক বাইটে স্টোর হয়, ইনপুট ভ্যালিডেশন স্বয়ংক্রিয়।
- সীমাবদ্ধতা: নতুন মান যোগ করতে
ALTER TABLEলাগে, সর্টিং ইনডেক্স অনুযায়ী হয় (অ্যালফাবেটিক্যাল নয়)। - এক্সট্রা মান ইনসার্ট করলে ওয়ার্নিং দিয়ে খালি স্ট্রিং ('') স্টোর হয় (Strict Mode-এ এরর)।