DEFAULT w SQL

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

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

  • DEFAULT podaje wartość automatyczną.
  • NOT NULL zabrania pustej wartości.
  • PRIMARY KEY wymusza unikalność i brak NULL.

Dlatego samo użycie DEFAULT nie powoduje konieczności dodania NOT NULL.