Ja, aktiver tilstanden NO_ZERO_DATE:
SET sql_mode = 'NO_ZERO_DATE';
Adfærden er dokumenteret . Derudover vil du måske også indstille tilstanden til at inkludere NO_ZERO_IN_DATE...
Sørg også for, at sql_mode inkluderer enten STRICT_ALL_TABLES eller STRICT_TRANS_TABLES; uden disse NO_ZERO_IN_DATE giver kun en advarsel, men indsættelse lykkes stadig.
Separate kolonner betyder, at de skal kontrolleres individuelt - det kan du ikke gøre noget ved.