কম্পিউটার টিউটোরিয়াল

MySQL-এ ALTER TABLE MODIFY ব্যবহার করে বিদ্যমান কলামে NOT NULL কনস্ট্রেইন্ট যোগ করা

MySQL-এ ইতিমধ্যে তৈরি কলামে NOT NULL কনস্ট্রেইন্ট যোগ করতে ALTER TABLE ... MODIFY স্টেটমেন্ট ব্যবহার করা হয়। কলামের পুরো ডেফিনিশন পুনরাবৃত্তি করতে হয়।

টেবিল তৈরি (StudentName NOT NULL নেই)

mysql> CREATE TABLE DemoTable (
    -> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.86 sec)

ডেসক্রিপশন (পূর্বে)

mysql> DESC DemoTable;
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| StudentId   | int(11)      | NO   | PRI | NULL    | auto_increment |
| StudentName | varchar(100) | YES  |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
2 rows in set (0.01 sec)

NOT NULL কনস্ট্রেইন্ট যোগ করা

mysql> ALTER TABLE DemoTable MODIFY StudentName VARCHAR(100) NOT NULL;
Query OK, 0 rows affected (1.57 sec)
Records: 0 Duplicates: 0 Warnings: 0

ডেসক্রিপশন (পরে)

mysql> DESC DemoTable;
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| StudentId   | int(11)      | NO   | PRI | NULL    | auto_increment |
| StudentName | varchar(100) | NO   |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

ব্যাখ্যা: MODIFY-এ কলামের পুরো টাইপ (VARCHAR(100)) এবং নতুন কনস্ট্রেইন্ট (NOT NULL) উল্লেখ করতে হয়। Null কলাম YES থেকে NO হয়েছে।

গুরুত্বপূর্ণ সতর্কতা: যদি টেবিলে ইতিমধ্যে StudentName কলামে NULL মান থাকে, তবে এই কোয়েরি ফেল হবে (Error: Column 'StudentName' cannot be null)। আগে UPDATE DemoTable SET StudentName = '' WHERE StudentName IS NULL; দিয়ে NULL গুলো দূর করুন।

বিকল্প: ALTER TABLE DemoTable CHANGE StudentName StudentName VARCHAR(100) NOT NULL; — CHANGE-এ পুরনো নাম, নতুন নাম, টাইপ সব দিতে হয়।

  1. MySQL-এ ALTER TABLE MODIFY ব্যবহার করে কালামে NOT NULL কনস্ট্রেইন্ট যোগ করা

  2. MySQL-এ NULL মান থাকা কলামে সাবটোটাল যোগ করা

  3. MySQL-এ বিদ্যমান টেবিলে নতুন কলাম যোগ করে স্বয়ংক্রিয় ভ্যালু দিয়ে পূরণ

  4. MySQL-এ SERIAL কলাম নাম ব্যবহার করলে কি 'NOT NULL' অটোমেটিক্যালি থাকে?