Por que o MySQL permite atualizar uma coluna NOT NULL para NULL?

Estou correndoMySql emubuntu 10.10. Eu criei uma mesa chamada'employee' tendo 3 nomes de campoempno, nome e salário. Inserido poucas entidades. No meio do processo eu quero mudar o atributo salário como'NOT NULL'. Eu altero a tabela como

ALTER TABLE employee MODIFY salary int(10) NOT NULL;

Consulta executada. Eu queria testar usando o comando

UPDATE employee SET salary=NULL;

Query OK, 15 rows affected, 15 warnings (0.06 sec)
Rows matched: 15  Changed: 15  Warnings: 15

também deu avisos" (Code 1048): Column 'salary' cannot be null "(Repetido para cada linha)

Mas quando eu vi minha mesa, todos os salários eram zeros ('0').

As mesmas consultas resultam em erro em vez de aviso no MySql do WINDOWS XP

Eu verifiquei nos motores INNODB e MYISAM, mas mesmo resultado. Por favor me ajude a saber o que aconteceu ao lado do processamento.