Når vi opretter en tabel på denne måde:
CREATE TABLE people (
age INT,
name CHAR(20)
);
SQL accepterer frit tomme værdier som poster:
INSERT INTO people VALUES (null, null);
Dette kan være et problem, for nu har vi en række med null-værdier:
age | name
-----+--------
37 | Flavio
8 | Roger
|
For at løse dette kan vi erklære begrænsninger på vores tabelrækker. NOT NULL
forhindrer null-værdier:
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL
);
Hvis vi prøver at udføre denne forespørgsel igen:
INSERT INTO people VALUES (null, null);
Vi får en fejl, som denne:
ERROR: null value in column "age" violates not-null constraint
DETAIL: Failing row contains (null, null).
Bemærk, at en tom streng er en gyldig ikke-null værdi.