এজন্য 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))ও ব্যবহার করা যায়।