Cuando creamos una tabla de esta manera:
CREATE TABLE people (
age INT,
name CHAR(20)
);
SQL acepta libremente valores vacíos como registros:
INSERT INTO people VALUES (null, null);
Esto podría ser un problema, porque ahora tenemos una fila con valores nulos:
age | name
-----+--------
37 | Flavio
8 | Roger
|
Para resolver esto, podemos declarar restricciones en las filas de nuestra tabla. NOT NULL
previene valores nulos:
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL
);
Si intentamos ejecutar esta consulta de nuevo:
INSERT INTO people VALUES (null, null);
Obtendríamos un error, como este:
ERROR: null value in column "age" violates not-null constraint
DETAIL: Failing row contains (null, null).
Tenga en cuenta que una cadena vacía es un valor no nulo válido.