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

MySQL-এ NULL মান থাকলে NOT NULL কলামে ডিফল্ট মান ইনসার্ট করা

এজন্য IFNULL() ফাংশন বা IF() সাথে IS NULL ব্যবহার করা যায়।

সিনট্যাক্স

INSERT INTO yourTableName(yourColumnName1, yourColumnName2) 
VALUES('yourValue', IF(yourColumnName1 IS NULL, DEFAULT(yourColumnName2), 'yourMessage'));

উদাহরণ দিয়ে বুঝি

একটি টেবিল তৈরি করুন যেখানে UserPostMessage কলামে ডিফল্ট মান রয়েছে:

mysql> CREATE TABLE Post (
    -> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> UserName VARCHAR(10),
    -> UserPostMessage VARCHAR(50) NOT NULL DEFAULT 'Hi Good Morning !!!'
    -> );
Query OK, 0 rows affected (0.67 sec)

এখন ডেটা ইনসার্ট করুন:

mysql> INSERT INTO Post(UserName, UserPostMessage) 
    -> VALUES('John', IF(UserName IS NULL, DEFAULT(UserPostMessage), 'Hello'));
mysql> INSERT INTO Post(UserName, UserPostMessage) 
    -> VALUES(NULL, IF(UserName IS NULL, DEFAULT(UserPostMessage), 'Hello'));
mysql> INSERT INTO Post(UserName, UserPostMessage) 
    -> VALUES('Carol', IF(UserName IS NULL, DEFAULT(UserPostMessage), 'Hello'));

ফলাফল দেখুন:

mysql> SELECT * FROM Post;
+----+----------+---------------------+
| Id | UserName | UserPostMessage     |
+----+----------+---------------------+
|  1 | John     | Hello               |
|  2 | NULL     | Hi Good Morning !!! |
|  3 | Carol    | Hello               |
+----+----------+---------------------+
3 rows in set (0.00 sec)

ব্যাখ্যা: যখন UserName হলো NULL (২য় রো), তখন UserPostMessage কলামে ডিফল্ট মান 'Hi Good Morning !!!' ইনসার্ট হয়েছে। অন্য দুই রোয়ে UserName থাকায় 'Hello' ইনসার্ট হয়েছে।

বিকল্প: IFNULL(UserName, DEFAULT(UserPostMessage))ও ব্যবহার করা যায়।

  1. Java ব্যবহার করে MySQL কলামে DATE ইনসার্ট করার পদ্ধতি

  2. Java-এ PreparedStatement ব্যবহার করে MySQL-এ NULL মান ইনসার্ট করা (setNull)

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

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