MySQL-এ ENUM টাইপের কলাম থেকে কোনো নির্দিষ্ট মান মুছে ফেলতে ALTER TABLE ... CHANGE কমান্ড দিয়ে নতুন ENUM লিস্ট দিতে হয় (পুরনো লিস্ট থেকে অপছন্দ মান বাদ দিয়ে)।
টেবিল তৈরি (ENUM সহ)
mysql> CREATE TABLE DemoTable (
`Rank` ENUM('LOW', 'MEDIUM', 'HIGH')
);
প্রাথমিক ডেসক্রিপশন
+-------+-----------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-----------------------------+------+-----+---------+-------+
| Rank | enum('LOW','MEDIUM','HIGH') | YES | | NULL | |
+-------+-----------------------------+------+-----+---------+-------+
'MEDIUM' মান মুছে ফেলা
mysql> ALTER TABLE DemoTable CHANGE `Rank` `Rank` ENUM('LOW', 'HIGH');
Query OK, 0 rows affected (1.19 sec)
পরিবর্তনের পর ডেসক্রিপশন
+-------+--------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------------+------+-----+---------+-------+
| Rank | enum('LOW','HIGH') | YES | | NULL | |
+-------+--------------------+------+-----+---------+-------+
গুরুত্বপূর্ণ সতর্কতা:
- যদি টেবিলে 'MEDIUM' ভ্যালুवाले রো থাকে, তবে এই কোয়েরি ফেইল করবে (Data truncation error)।
- আপডেট করার আগে সেই রোগুলো অন্য বৈধ ভ্যালুতে (
UPDATE ... SET Rank='LOW' WHERE Rank='MEDIUM') পরিবর্তন করে নিন। - ENUM মানগুলো কেস-ইনসেনসিটিভ কিন্তু স্টোরেজে কেস সংরক্ষিত থাকে।