
Camilo Quiceno Quintero
Pregunta¿No es contradictorio que una columna “NOT NULL” tenga un Default?

Cristian Henao
Sirve cómo un control de errores, y que MySQL no te saque un error de forma abrupta interrumpiendo el proceso, sino que igual inserta ese valor, aunque en cierta manera resulta algo... peligroso

Fernando Huamán Santamaria
Cuando decimos que una columna es NOT NULL, se refiere a que el campo de esa columna tiene que tener un valor sí o sí. Si hacemos una inserción de valores y nos olvidamos de ingresar ese valor a esa columna no emitirá un error. Por lo tanto necesitamos de un Default el cual tiene un valor que será agragado a dicho campo en caso de que nos olvidemos insertar el valor.
Por ejemplo:
dni VARCHAR(10) NOT NULL DEFAULT 'No hay DNI'
En este ejemplo queremos decir que sí o sí va a tener un valor el campo de la columna dni si en caso no haya cuando se ejecute una inserción el valor por defecto que va a tomar será No hay DNI.