När vi skapar en tabell på detta sätt:
CREATE TABLE people (
age INT,
name CHAR(20)
);
SQL accepterar fritt tomma värden som poster:
INSERT INTO people VALUES (null, null);
Detta kan vara ett problem, för nu har vi en rad med nollvärden:
age | name
-----+--------
37 | Flavio
8 | Roger
|
För att lösa detta kan vi deklarera begränsningar på våra tabellrader. NOT NULL
förhindrar nullvärden:
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL
);
Om vi försöker köra den här frågan igen:
INSERT INTO people VALUES (null, null);
Vi skulle få ett felmeddelande, så här:
ERROR: null value in column "age" violates not-null constraint
DETAIL: Failing row contains (null, null).
Observera att en tom sträng är ett giltigt icke-nullvärde.