DEFAULT
è il valore che verrà inserito in assenza di un valore esplicito in un'istruzione di inserimento / aggiornamento. Supponiamo che il tuo DDL non avesse il NOT NULL
vincolo:
ALTER TABLE tbl ADD COLUMN col VARCHAR(20) DEFAULT 'MyDefault'
Quindi potresti rilasciare queste dichiarazioni
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);
In alternativa, puoi anche usare DEFAULT
nelle UPDATE
istruzioni, secondo lo standard SQL-1992 :
UPDATE tbl SET col = DEFAULT;
UPDATE tbl SET col = NULL;
Nota, non tutti i database supportano tutte queste sintassi standard SQL. L'aggiunta del NOT NULL
vincolo causerà un errore con le istruzioni 4, 6
, mentre 1-3, 5
sono ancora valide le istruzioni. Quindi, per rispondere alla tua domanda: No, non sono ridondanti.