Sì, abilita la modalità NO_ZERO_DATE:
SET sql_mode = 'NO_ZERO_DATE';
Il comportamento è documentato . Inoltre, potresti anche voler impostare la modalità per includere NO_ZERO_IN_DATE...
Assicurati inoltre che sql_mode includa STRICT_ALL_TABLES o STRICT_TRANS_TABLES; senza questi NO_ZERO_IN_DATE danno solo un avviso, ma l'inserimento riesce comunque.
Colonne separate significano che devono essere controllate individualmente, niente che tu possa fare al riguardo.