Samenvatting :in deze tutorial leer je hoe je de SQLite NOT NULL
. gebruikt beperking om ervoor te zorgen dat de waarden in een kolom niet NULL
zijn .
Inleiding tot SQLite NOT NULL
beperking
Wanneer u een tabel maakt, kunt u aangeven of een kolom NULL
. accepteert waarden of niet. Standaard accepteren alle kolommen in een tabel NULL
waarden behalve dat u expliciet NOT NULL
gebruikt beperkingen.
Een NOT NULL
definiëren beperking voor een kolom, gebruikt u de volgende syntaxis:
CREATE TABLE table_name (
...,
column_name type_name NOT NULL,
...
);
Code language: SQL (Structured Query Language) (sql)
In tegenstelling tot andere beperkingen zoals PRIMARY KEY
en CHECK
, u kunt alleen NOT NULL
definiëren beperkingen op kolomniveau, niet op tabelniveau.
Gebaseerd op de SQL-standaard, PRIMARY KEY
moet altijd NOT NULL
betekenen . SQLite staat echter NULL
toe waarden in de PRIMARY KEY
kolom behalve dat een kolom INTEGER PRIMARY KEY
. is kolom of de tabel is een WITHOUT ROWID
tabel of de kolom is gedefinieerd als een NOT NULL
kolom.
Dit komt door een bug in sommige vroege versies. Als deze bug wordt opgelost om te voldoen aan de SQL-standaard, kan deze de legacy-systemen kapot maken. Daarom is besloten om NULL
. toe te staan waarden in de PRIMARY KEY
kolom.
Eenmaal een NOT NULL
beperking is gekoppeld aan een kolom, elke poging om de kolomwaarde in te stellen op NULL
zoals invoegen of bijwerken zal een schending van de beperking veroorzaken.
SQLite NOT NULL
beperking voorbeeld
In het volgende voorbeeld wordt een nieuwe tabel gemaakt met de naam suppliers
:
CREATE TABLE suppliers(
supplier_id INTEGER PRIMARY KEY,
name TEXT NOT NULL
);
Code language: SQL (Structured Query Language) (sql)
In dit voorbeeld is de supplier_id
is de PRIMARY KEY
kolom van de suppliers
tafel. Omdat deze kolom is gedeclareerd als INTEGER PRIMARY KEY
, het accepteert geen NULL
waarden.
De name
kolom wordt ook gedeclareerd met een NOT NULL
beperking, dus het accepteert alleen niet-NULL-waarden.
De volgende instructie probeert een NULL
. in te voegen in de name
kolom van de suppliers
tafel:
INSERT INTO suppliers(name)
VALUES(NULL);
Code language: SQL (Structured Query Language) (sql)
De instructie mislukt vanwege de NOT NULL
beperking overtreding. Hier is de foutmelding:
SQL Error [19]: [SQLITE_CONSTRAINT] Abort due to constraint violation (NOT NULL constraint failed: suppliers.name)
Code language: CSS (css)
In deze tutorial heb je geleerd hoe je SQLite NOT NULL
. gebruikt beperking om ervoor te zorgen dat waarden in een kolom niet NULL zijn.