サーバーの1つはデフォルトで厳密モードで実行されており、もう1つはそうではありません。サーバーが厳密モードで実行されている場合(または接続でサーバーを設定している場合)、NOTNULLとして定義された列にNULL値を挿入しようとすると次のようになります。 #1364エラー。 strictモードがないと、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