Wenn wir auf diese Weise eine Tabelle erstellen:
CREATE TABLE people (
age INT,
name CHAR(20)
);
SQL akzeptiert leere Werte als Datensätze:
INSERT INTO people VALUES (null, null);
Dies könnte ein Problem sein, da wir jetzt eine Zeile mit Nullwerten haben:
age | name
-----+--------
37 | Flavio
8 | Roger
|
Um dies zu lösen, können wir Einschränkungen für unsere Tabellenzeilen deklarieren. NOT NULL
verhindert Nullwerte:
CREATE TABLE people (
age INT NOT NULL,
name CHAR(20) NOT NULL
);
Wenn wir versuchen, diese Abfrage erneut auszuführen:
INSERT INTO people VALUES (null, null);
Wir würden einen Fehler wie diesen erhalten:
ERROR: null value in column "age" violates not-null constraint
DETAIL: Failing row contains (null, null).
Beachten Sie, dass eine leere Zeichenfolge ein gültiger Nicht-Null-Wert ist.