DEFAULTto wartość, która zostanie wstawiona w przypadku braku jawnej wartości w instrukcji wstawiania / aktualizowania. Załóżmy, że Twój DDL nie miał NOT NULLograniczenia:
ALTER TABLE tbl ADD COLUMN col VARCHAR(20) DEFAULT "MyDefault"
Wtedy mógłbyś wydać takie oświadczenia
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);
Alternatywnie możesz również użyć DEFAULTw UPDATEinstrukcjach, zgodnie ze standardem SQL-1992 :
UPDATE tbl SET col = DEFAULT;
UPDATE tbl SET col = NULL;
Należy zauważyć, że nie wszystkie bazy danych obsługują wszystkie te standardowe składnie języka SQL. Dodanie NOT NULLograniczenia spowoduje błąd w instrukcjach 4, 6, mimo że 1-3, 5nadal są poprawnymi instrukcjami. A więc odpowiadając na twoje pytanie: nie, nie są one zbędne.