Zusammenfassung :In diesem Tutorial lernen Sie, wie Sie den SQLite NOT NULL
verwenden Einschränkung, um sicherzustellen, dass die Werte in einer Spalte nicht NULL
sind .
Einführung in SQLite NOT NULL
Einschränkung
Wenn Sie eine Tabelle erstellen, können Sie angeben, ob eine Spalte NULL
akzeptiert Werte oder nicht. Standardmäßig akzeptieren alle Spalten in einer Tabelle NULL
Werte, außer Sie verwenden explizit NOT NULL
Einschränkungen.
Um ein NOT NULL
zu definieren Einschränkung für eine Spalte verwenden Sie die folgende Syntax:
CREATE TABLE table_name (
...,
column_name type_name NOT NULL,
...
);
Code language: SQL (Structured Query Language) (sql)
Im Gegensatz zu anderen Einschränkungen wie PRIMARY KEY
und CHECK
, können Sie nur NOT NULL
definieren Einschränkungen auf Spaltenebene, nicht auf Tabellenebene.
Basierend auf dem SQL-Standard, PRIMARY KEY
sollte immer NOT NULL
implizieren . SQLite erlaubt jedoch NULL
Werte im PRIMARY KEY
Spalte, außer dass eine Spalte INTEGER PRIMARY KEY
ist Spalte oder die Tabelle ist eine WITHOUT ROWID
Tabelle oder die Spalte ist als NOT NULL
definiert Spalte.
Dies ist auf einen Fehler in einigen frühen Versionen zurückzuführen. Wenn dieser Fehler behoben wird, um dem SQL-Standard zu entsprechen, kann er die Legacy-Systeme beschädigen. Daher wurde entschieden, NULL
zuzulassen Werte im PRIMARY KEY
Spalte.
Einmal ein NOT NULL
Einschränkung an eine Spalte angehängt ist, jeder Versuch, den Spaltenwert auf NULL
zu setzen wie das Einfügen oder Aktualisieren führt zu einer Einschränkungsverletzung.
SQLite NOT NULL
Einschränkungsbeispiel
Das folgende Beispiel erstellt eine neue Tabelle mit dem Namen suppliers
:
CREATE TABLE suppliers(
supplier_id INTEGER PRIMARY KEY,
name TEXT NOT NULL
);
Code language: SQL (Structured Query Language) (sql)
In diesem Beispiel die supplier_id
ist der PRIMARY KEY
Spalte der suppliers
Tisch. Denn diese Spalte ist als INTEGER PRIMARY KEY
deklariert , wird NULL
nicht akzeptiert Werte.
Der name
Spalte wird auch mit einem NOT NULL
deklariert Einschränkung, sodass nur Nicht-NULL-Werte akzeptiert werden.
Die folgende Anweisung versucht, einen NULL
einzufügen in den name
Spalte der suppliers
Tabelle:
INSERT INTO suppliers(name)
VALUES(NULL);
Code language: SQL (Structured Query Language) (sql)
Die Anweisung schlägt aufgrund von NOT NULL
fehl Constraint-Verletzung. Hier ist die Fehlermeldung:
SQL Error [19]: [SQLITE_CONSTRAINT] Abort due to constraint violation (NOT NULL constraint failed: suppliers.name)
Code language: CSS (css)
In diesem Tutorial haben Sie gelernt, wie Sie SQLite NOT NULL
verwenden Einschränkung, um sicherzustellen, dass Werte in einer Spalte nicht NULL sind.