Tach!
insert into u( wid, pw) values (1, 'hmm'); --wieso geht das? nick ist doch auf not null. Sollte keine Fehlermeldung kommen
NOT NULL heißt nicht, dass das ein Zwangsfeld mit einer bestimmten Stringlänge ist. Wenn du es nicht mit angibst, wird der Default-Wert eingetragen, was in deinem Fall ein Leerstring ist.
Was hat not null dann für einen sinn? Dann kann man es ja gleich weglaassen