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

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


MySQL-এ কলাম থেকে NOT NULL সীমাবদ্ধতা সরানো

একটি কলামে NOT NULL কনস্ট্রেইন্ট থাকলে সেখানে NULL ইনসার্ট করা যায় না। এই সীমাবদ্ধতা সরাতে ALTER TABLE ... MODIFY COLUMN ব্যবহার করা হয়, যেখানে কলাম ডিফিনিশন থেকে NOT NULL বাদ দেওয়া হয়।

সিনট্যাক্স

ALTER TABLE yourTableName MODIFY COLUMN yourColumnName dataType;

উদাহরণ

টেবিল তৈরি (Name NOT NULL)

mysql> CREATE TABLE NotNullDemo (
    -> Id INT NOT NULL AUTO_INCREMENT,
    -> Name VARCHAR(20) NOT NULL,
    -> PRIMARY KEY(Id)
    -> );

NULL ইনসার্ট চেষ্টা (এরর)

mysql> INSERT INTO NotNullDemo(Name) VALUES(NULL);
ERROR 1048 (23000): Column 'Name' cannot be null

NOT NULL সরানো

mysql> ALTER TABLE NotNullDemo MODIFY COLUMN Name VARCHAR(20);
Query OK, 0 rows affected (1.78 sec)

এখন NULL ইনসার্ট করা যাচ্ছে

mysql> INSERT INTO NotNullDemo(Name) VALUES(NULL), ('Sam'), ('Mike'), (NULL), (NULL), ('John');

ফলাফল

mysql> SELECT * FROM NotNullDemo;
+----+------+
| Id | Name |
+----+------+
| 1  | NULL |
| 2  | Sam  |
| 3  | Mike |
| 4  | NULL |
| 5  | NULL |
| 6  | John |
+----+------+

সাবধানতা: বড় টেবিলে MODIFY COLUMN চালালে টেবিল রিবিল্ড হতে পারে এবং লক হতে পারে। প্রোডাকশনে पीক আওয়ার বাদে চালান।

  1. MySQL-এ একাধিক টেবিল থেকে NOT NULL মান গণনা করা (সিঙ্গেল কোয়েরি)

  2. MySQL에서 IS NOT NULL로 NULL 제외하고 NOT NULL 값만 다른 테이블로 복사하기

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

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