Когато създаваме таблица по този начин:
CREATE TABLE people (
age INT,
name CHAR(20)
);
SQL свободно приема празни стойности като записи:
INSERT INTO people VALUES (null, null);
Това може да е проблем, защото сега имаме ред с нулеви стойности:
age | name
-----+--------
37 | Flavio
8 | Roger
|
За да разрешим това, можем да декларираме ограничения върху редовете на нашата таблица. NOT NULL
предотвратява нулеви стойности:
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL
);
Ако се опитаме да изпълним тази заявка отново:
INSERT INTO people VALUES (null, null);
Ще получим грешка, като тази:
ERROR: null value in column "age" violates not-null constraint
DETAIL: Failing row contains (null, null).
Имайте предвид, че празен низ е валидна стойност, различна от нула.