Ja, schakel de NO_ZERO_DATE-modus in:
SET sql_mode = 'NO_ZERO_DATE';
Het gedrag is gedocumenteerd . Daarnaast wilt u misschien ook de modus instellen om NO_ZERO_IN_DATE...
Zorg er ook voor dat de sql_mode ofwel STRICT_ALL_TABLES of STRICT_TRANS_TABLES bevat; zonder deze geeft NO_ZERO_IN_DATE alleen een waarschuwing, maar het invoegen lukt nog steeds.
Afzonderlijke kolommen betekenen dat ze afzonderlijk moeten worden gecontroleerd - daar kunt u niets aan doen.