Sí, habilite el modo NO_ZERO_DATE:
SET sql_mode = 'NO_ZERO_DATE';
El comportamiento está documentado . Además, es posible que también desee configurar el modo para incluir NO_ZERO_IN_DATE...
También asegúrese de que sql_mode incluya STRICT_ALL_TABLES o STRICT_TRANS_TABLES; sin estos NO_ZERO_IN_DATE solo dan una advertencia, pero la inserción aún tiene éxito.
Las columnas separadas significan que deben verificarse individualmente, no hay nada que pueda hacer al respecto.