Résumé :dans ce tutoriel, vous apprendrez à utiliser le SQLite NOT NULL
contrainte pour s'assurer que les valeurs d'une colonne ne sont pas NULL
.
Introduction à SQLite NOT NULL
contrainte
Lorsque vous créez une table, vous pouvez spécifier si une colonne accepte NULL
valeurs ou non. Par défaut, toutes les colonnes d'une table acceptent NULL
sauf que vous utilisez explicitement NOT NULL
contraintes.
Pour définir un NOT NULL
contrainte pour une colonne, vous utilisez la syntaxe suivante :
CREATE TABLE table_name (
...,
column_name type_name NOT NULL,
...
);
Code language: SQL (Structured Query Language) (sql)
Contrairement à d'autres contraintes telles que PRIMARY KEY
et CHECK
, vous ne pouvez définir que NOT NULL
contraintes au niveau de la colonne, pas au niveau de la table.
Basé sur le standard SQL, PRIMARY KEY
doit toujours impliquer NOT NULL
. Cependant, SQLite autorise NULL
valeurs dans la PRIMARY KEY
colonne sauf qu'une colonne est INTEGER PRIMARY KEY
colonne ou la table est un WITHOUT ROWID
table ou la colonne est définie comme NOT NULL
colonne.
Cela est dû à un bogue dans certaines versions antérieures. Si ce bogue est corrigé pour se conformer à la norme SQL, il pourrait alors casser les systèmes hérités. Par conséquent, il a été décidé d'autoriser NULL
valeurs dans la PRIMARY KEY
colonne.
Une fois un NOT NULL
contrainte est attachée à une colonne, toute tentative de définition de la valeur de la colonne sur NULL
telles que l'insertion ou la mise à jour entraînera une violation de contrainte.
SQLite NOT NULL
exemple de contrainte
L'exemple suivant crée une nouvelle table nommée suppliers
:
CREATE TABLE suppliers(
supplier_id INTEGER PRIMARY KEY,
name TEXT NOT NULL
);
Code language: SQL (Structured Query Language) (sql)
Dans cet exemple, le supplier_id
est la PRIMARY KEY
colonne des suppliers
table. Parce que cette colonne est déclarée comme INTEGER PRIMARY KEY
, il n'acceptera pas NULL
valeurs.
Le name
la colonne est également déclarée avec un NOT NULL
contrainte, il n'acceptera donc que des valeurs non NULL.
L'instruction suivante tente d'insérer un NULL
dans le name
colonne des suppliers
tableau :
INSERT INTO suppliers(name)
VALUES(NULL);
Code language: SQL (Structured Query Language) (sql)
L'instruction échoue en raison du NOT NULL
violation de contrainte. Voici le message d'erreur :
SQL Error [19]: [SQLITE_CONSTRAINT] Abort due to constraint violation (NOT NULL constraint failed: suppliers.name)
Code language: CSS (css)
Dans ce tutoriel, vous avez appris à utiliser SQLite NOT NULL
contrainte pour s'assurer que les valeurs d'une colonne ne sont pas NULL.