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

MySQL-এ ALTER TABLE MODIFY দিয়ে বিদ্যমান কলামে NOT NULL অ্যাট্রিবিউট সেট করা

একটি বিদ্যমান কলামকে NOT NULL কনস্ট্রেইন্ট দিতে ALTER TABLE ... MODIFY ব্যবহার করা হয়। এটি কলামের ডেটা টাইপ পুনঃনির্দিষ্ট করে কনস্ট্রেইন্ট যোগ করে।

টেবিল তৈরি (প্রাথমিকভাবে NULLable)

mysql> CREATE TABLE DemoTable1949 (
    UserId INT,
    UserName VARCHAR(20)
);

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

mysql> ALTER TABLE DemoTable1949
    MODIFY UserName VARCHAR(20) NOT NULL;

আউটপুট: Query OK, 0 rows affected (0.00 sec)

টেবিল কাঠামো যাচাই

mysql> DESC DemoTable1949;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| UserId   | int(11)     | YES  |     | NULL    |       |
| UserName | varchar(20) | NO   |     | NULL    |       |  <-- Null = NO
+----------+-------------+------+-----+---------+-------+

টেস্ট: NULL ইনসার্ট করার চেষ্টা

mysql> INSERT INTO DemoTable1949 VALUES (101, NULL);
ERROR 1048 (23000): Column 'UserName' cannot be null

বৈধ ইনসার্ট

mysql> INSERT INTO DemoTable1949 VALUES (101, 'Chris'), (102, 'Bob');

ফলাফল যাচাই

mysql> SELECT * FROM DemoTable1949;
+--------+----------+
| UserId | UserName |
+--------+----------+
|    101 | Chris    |
|    102 | Bob      |
+--------+----------+

গুরুত্বপূর্ণ নোট

  • বিদ্যমান NULL মান থাকলে: MODIFY ... NOT NULL ফেইল করবে। আগে NULL মানগুলো আপডেট করুন: UPDATE table SET col = 'default' WHERE col IS NULL;
  • MODIFY কলামের পুরো ডেফিনিশন দিতে হয় (টাইপ, দৈর্ঘ্য, কনস্ট্রেইন্ট) — শুধু NOT NULL লিখলেই হয় না।
  • CHANGE ব্যবহার করলে কলামের নামও পরিবর্তন করা যায়: ALTER TABLE t CHANGE old_name new_name VARCHAR(20) NOT NULL;

CHANGE vs MODIFY

বিষয়MODIFYCHANGE
কলাম নাম পরিবর্তননাহ্যাঁ
সিনট্যাক্সMODIFY col_name definitionCHANGE old_name new_name definition
কোলেশন/চারসেটরাখা যায়রাখা যায়
  1. MySQL-এ IS NOT NULL দিয়ে কলামে NULL বা NOT NULL চেক করা

  2. MySQL에서 기존 테이블에 NOT NULL 컬럼 추가하기

  3. MySQL-এ কলামকে NOT NULL ডিফাইন করা যাতে সেটি খালি (NULL) না থাকে

  4. MySQL-এ IF() ফাংশন দিয়ে NOT NULL মান માટે ১ এবং NULL জন্য ০ দেখানো