''
и null
не са еднакви. ако вашият mysql сървър е в строг режим, тогава той ще откаже да направи вмъкването, тъй като сте предали невалидни данни за колоната. без строг режим, той връща предупреждение.
mysql> create table a (a float not null);
Query OK, 0 rows affected (0.11 sec)
mysql> insert a values ('');
Query OK, 1 row affected, 1 warning (0.05 sec)
mysql> show warnings;
+---------+------+----------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------+
| Warning | 1265 | Data truncated for column 'a' at row 1 |
+---------+------+----------------------------------------+
1 row in set (0.00 sec)
mysql> set sql_mode = 'STRICT_ALL_TABLES';
Query OK, 0 rows affected (0.02 sec)
mysql> insert a values ('');
ERROR 1265 (01000): Data truncated for column 'a' at row 1
или вмъкнете изрично null
s или дори не посочвайте колоната във вмъкването.
когато актуализирате, можете да изпратите всички стойности, които имате, защото mysql автоматично ще игнорира непроменените.