Zasto? Da bi my mysql generisao greske?
Bolje ostavi not null default 0, a ti pre upisa proveri da li je poslao validan zip ako zahtevas da user unese zip.
Ako ti polje nije required (na primer user ne mora da unese), a ti stavis samo NOT NULL bez DEFAULT , na novijim verzijama mysql ce ti prijaviti gresku da "polje xxxx nema default vrednost" i nece ti uraditi insert.