DEFAULTes el valor que se insertará en ausencia de un valor explícito en una declaración de inserción / actualización. Supongamos que su DDL no tenía la NOT NULLrestricción:
ALTER TABLE tbl ADD COLUMN col VARCHAR(20) DEFAULT "MyDefault"
Entonces podrías emitir estas declaraciones
INSERT INTO tbl (A, B) VALUES (NULL, NULL);
INSERT INTO tbl (A, B, col) VALUES (NULL, NULL, DEFAULT);
INSERT INTO tbl (A, B, col) DEFAULT VALUES;
INSERT INTO tbl (A, B, col) VALUES (NULL, NULL, NULL);
Alternativamente, también puede usar DEFAULTen UPDATEdeclaraciones, de acuerdo con el estándar SQL-1992 :
UPDATE tbl SET col = DEFAULT;
UPDATE tbl SET col = NULL;
Tenga en cuenta que no todas las bases de datos admiten todas estas sintaxis estándar de SQL. Agregar la NOT NULLrestricción provocará un error con las declaraciones 4, 6, mientras que 1-3, 5aún sean declaraciones válidas. Entonces, para responder a su pregunta: No, no son redundantes.