Als we een tabel op deze manier maken:
CREATE TABLE people (
age INT,
name CHAR(20)
);
SQL accepteert vrijelijk lege waarden als records:
INSERT INTO people VALUES (null, null);
Dit kan een probleem zijn, omdat we nu een rij hebben met null-waarden:
age | name
-----+--------
37 | Flavio
8 | Roger
|
Om dit op te lossen, kunnen we beperkingen op onze tabelrijen declareren. NOT NULL
voorkomt null-waarden:
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL
);
Als we deze query opnieuw proberen uit te voeren:
INSERT INTO people VALUES (null, null);
We zouden een foutmelding krijgen, zoals deze:
ERROR: null value in column "age" violates not-null constraint
DETAIL: Failing row contains (null, null).
Merk op dat een lege string een geldige niet-null-waarde is.