आपका एक सर्वर डिफ़ॉल्ट रूप से सख्त मोड में चल रहा है और दूसरा नहीं। यदि कोई सर्वर सख्त मोड में चलता है (या आप इसे अपने कनेक्शन में सेट करते हैं) और आप NULL के रूप में परिभाषित कॉलम में NULL मान डालने का प्रयास करते हैं तो आपको मिलेगा #1364 त्रुटि। सख्त मोड के बिना आपका NULL मान खाली स्ट्रिंग या 0 से बदल दिया जाएगा।
उदाहरण:
CREATE TABLE `test_tbl` (
`id` int(11) NOT NULL,
`someint` int(11) NOT NULL,
`sometext` varchar(255) NOT NULL,
`somedate` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
SET sql_mode = '';
INSERT INTO test_tbl(id) VALUES(1);
SELECT * FROM test_tbl;
+----+---------+----------+---------------------+
| id | someint | sometext | somedate |
+----+---------+----------+---------------------+
| 1 | 0 | | 0000-00-00 00:00:00 |
+----+---------+----------+---------------------+
SET sql_mode = 'STRICT_ALL_TABLES';
INSERT INTO test_tbl(id) VALUES(2);
#1364 - Field 'someint' doesn't have a default value