Když vytvoříme tabulku tímto způsobem:
CREATE TABLE people (
age INT,
name CHAR(20)
);
SQL volně přijímá prázdné hodnoty jako záznamy:
INSERT INTO people VALUES (null, null);
To může být problém, protože nyní máme řádek s hodnotami null:
age | name
-----+--------
37 | Flavio
8 | Roger
|
Abychom to vyřešili, můžeme deklarovat omezení na řádcích naší tabulky. NOT NULL
zabrání hodnotám null:
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL
);
Pokud se pokusíme provést tento dotaz znovu:
INSERT INTO people VALUES (null, null);
Dostaneme chybu, jako je tato:
ERROR: null value in column "age" violates not-null constraint
DETAIL: Failing row contains (null, null).
Všimněte si, že prázdný řetězec je platná hodnota bez nuly.