NOT NULL ঘোষিত একটি MySQL কলামে খালি স্ট্রিং ইনসার্ট করলে ফলাফলে এর রিপ্রেজেন্টেশন ডেটা টাইপের ওপর নির্ভর করে। আমরা জানি, খালি স্ট্রিং ইনসার্ট মানে আমরা MySQL-কে একটি মান দিচ্ছি যার ইন্টিজার রিপ্রেজেন্টেশন INT 0।
যদি কলামটি INTEGER ডেটা টাইপের হয়, তবে MySQL ফলাফলে 0 দেখাবে, কারণ খালি স্ট্রিং ইন্টিজার 0-এ ম্যাপ হয়েছে।
উদাহরণ
mysql> create table test(id int NOT NULL, Name Varchar(10));
Query OK, 0 rows affected (0.19 sec)
mysql> Insert into test(id, name) values('1', 'Gaurav'),('0','Rahul'),('','Aarav');
Query OK, 3 rows affected, 1 warning (0.08 sec)
Records: 3 Duplicates: 0 Warnings: 1
mysql> Select * from test;
+----+--------+
| id | Name |
+----+--------+
| 1 | Gaurav |
| 0 | Rahul |
| 0 | Aarav |
+----+--------+
3 rows in set (0.00 sec)
কিন্তু যদি কলামটি VARCHAR বা অন্য কোনো ডেটা টাইপের হয়, তবে MySQL ফলাফলে খালি স্ট্রিং দেখাবে।
mysql> create table test123(id Varchar(10) NOT NULL, Name Varchar(10));
Query OK, 0 rows affected (0.19 sec)
mysql> Insert into test123(id, name) values('1', 'Gaurav'),('0','Rahul'),('','Aarav');
Query OK, 3 rows affected, 1 warning (0.08 sec)
Records: 3 Duplicates: 0 Warnings: 1
mysql> Select * from test123;
+----+--------+
| id | Name |
+----+--------+
| 1 | Gaurav |
| 0 | Rahul |
| | Aarav |
+----+--------+
3 rows in set (0.00 sec)
উপরের উদাহরণগুলো থেকে দেখা যায় যে, NOT NULL কলামে খালি স্ট্রিং ইনসার্ট করলে ডেটা টাইপ কীভাবে ফলাফল নির্ধারণ করে।