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.