DEFAULT to atrybut kolumny określający wartość domyślną, która zostanie wpisana automatycznie, jeśli użytkownik nie poda wartości podczas dodawania rekordu.
Przykład użycia
CREATE TABLE Zamowienia (
id INT PRIMARY KEY,
status VARCHAR(20) DEFAULT 'nowe',
data_utworzenia DATE DEFAULT CURRENT_DATE
);
Jeżeli podczas dodawania zamówienia nie zostanie podany status, baza wpisze wartość nowe.
INSERT INTO Zamowienia (id) VALUES (1);
W efekcie rekord otrzyma domyślny status oraz domyślną datę.
DEFAULT a NOT NULL
DEFAULT nie oznacza automatycznie, że kolumna musi mieć NOT NULL. Kolumna może mieć wartość domyślną i nadal dopuszczać NULL, jeśli nie określono inaczej.
Przykład:
CREATE TABLE Test (
opis VARCHAR(100) DEFAULT 'brak opisu'
);
Do kolumny opis można nadal jawnie wstawić NULL, o ile baza danych i definicja kolumny tego nie zabraniają.
Ważne rozróżnienie
DEFAULTpodaje wartość automatyczną.NOT NULLzabrania pustej wartości.PRIMARY KEYwymusza unikalność i brakNULL.
Dlatego samo użycie DEFAULT nie powoduje konieczności dodania NOT NULL.