MySQL ENUM প্রকারগুলি নিম্নলিখিত বৈশিষ্ট্যগুলির সাথে সংজ্ঞায়িত করা যেতে পারে যা অনুমোদিত মানগুলিকে প্রভাবিত করে −
- শূন্য নয় - ENUM প্রকারে, ডিফল্টরূপে NULL মান অনুমোদিত। NULL মানগুলিকে অননুমোদিত করতে, ENUM কলাম বর্ণনা করার সময় আমাদের NOT NULL বৈশিষ্ট্য ব্যবহার করতে হবে৷
- শূন্য − NULL অ্যাট্রিবিউট হল ডিফল্ট NULL-এর প্রতিশব্দ। NULL-এর সূচক মান হল NULL৷ ৷
- ডিফল্ট − ডিফল্ট অ্যাট্রিবিউটের কারণে একটি ENUM ডেটা টাইপের একটি ডিফল্ট মান থাকে যখন একটি মান নির্দিষ্ট করা না থাকে। অন্য কথায়, আমরা বলতে পারি যে INSERT বিবৃতিতে এই ক্ষেত্রের জন্য একটি মান অন্তর্ভুক্ত করতে হবে না কারণ যদি এটি অন্তর্ভুক্ত না করে তাহলে DEFAULT নিম্নলিখিত মান সন্নিবেশ করা হবে। ডিফল্ট এক্সপ্রেশনে ফাংশন অনুমোদিত নয়। ENUM ডেটা টাইপের জন্য ডিফল্ট মানগুলির মধ্যে NULL এবং খালি স্ট্রিং (‘’) অন্তর্ভুক্ত থাকে।
উদাহরণ
নিম্নলিখিত উদাহরণটি ENUM ডেটা টাইপের সাথে এই বৈশিষ্ট্যগুলির ব্যবহার দেখাবে৷
mysql> SET SESSION sql_mode = ''; Query OK, 0 rows affected (0.00 sec) mysql> Create Table enumtesting(e_value ENUM('a','1')NOT NULL DEFAULT '1',id TINYINT NOT NULL); Query OK, 0 rows affected (0.23 sec) mysql>Insert into enumtesting(e_value,id)values('1','1'),('',2),(NULL,3),('abc',4); Query OK, 4 rows affected, 3 warnings (0.09 sec) Records: 4 Duplicates: 0 Warnings: 3 mysql> show warnings; +---------+------+----------------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------------+ | Warning | 1265 | Data truncated for column 'e_value' at row 2 | | Warning | 1048 | Column 'e_value' cannot be null | | Warning | 1265 | Data truncated for column 'e_value' at row 4 | +---------+------+----------------------------------------------------+ 3 rows in set (0.00 sec) mysql> Select * from enumtesting; +----+---------+ | e_value | id | +---------+----+ | 1 | 1 | | | 2 | | | 3 | | | 4 | +---------+----+ 4 rows in set (0.00 sec) mysql> insert into enumtesting(id) values(5); Query OK, 1 row affected (0.11 sec) mysql> Select * from enumtesting; +---------+----+ | e_value | id | +---------+----+ | 1 | 1 | | | 2 | | | 3 | | | 4 | | 1 | 5 | +---------+----+ 5 rows in set (0.00 sec) mysql> select e_value, e_value+0 AS enum_index, id from enumtetsing; +---------+------------+----+ | e_value | enum_index | id | +---------+------------+----+ | 1 | 2 | 1| | | 0 | 2| | | 0 | 3| | | 0 | 4| | 1 | 2 | 5| +---------+------------+----+ 5 rows in set (0.00 sec)