Resumen :en este tutorial, aprenderá a usar SQLite NOT NULL
restricción para garantizar que los valores en una columna no sean NULL
.
Introducción a SQLite NOT NULL
restricción
Cuando crea una tabla, puede especificar si una columna acepta NULL
valores o no. De forma predeterminada, todas las columnas de una tabla aceptan NULL
valores excepto que use explícitamente NOT NULL
restricciones.
Para definir un NOT NULL
restricción para una columna, utilice la siguiente sintaxis:
CREATE TABLE table_name (
...,
column_name type_name NOT NULL,
...
);
Code language: SQL (Structured Query Language) (sql)
A diferencia de otras restricciones como PRIMARY KEY
y CHECK
, solo puede definir NOT NULL
restricciones a nivel de columna, no a nivel de tabla.
Basado en el estándar SQL, PRIMARY KEY
siempre debe implicar NOT NULL
. Sin embargo, SQLite permite NULL
valores en la PRIMARY KEY
columna excepto que una columna es INTEGER PRIMARY KEY
columna o la tabla es un WITHOUT ROWID
la tabla o la columna se define como NOT NULL
columna.
Esto se debe a un error en algunas versiones anteriores. Si este error se corrige para cumplir con el estándar SQL, entonces podría romper los sistemas heredados. Por lo tanto, se ha decidido permitir NULL
valores en la PRIMARY KEY
columna.
Una vez que NOT NULL
la restricción está adjunta a una columna, cualquier intento de establecer el valor de la columna en NULL
como insertar o actualizar causará una violación de restricción.
SQLite NOT NULL
ejemplo de restricción
El siguiente ejemplo crea una nueva tabla llamada suppliers
:
CREATE TABLE suppliers(
supplier_id INTEGER PRIMARY KEY,
name TEXT NOT NULL
);
Code language: SQL (Structured Query Language) (sql)
En este ejemplo, el supplier_id
es la PRIMARY KEY
columna de los suppliers
mesa. Porque esta columna se declara como INTEGER PRIMARY KEY
, no aceptará NULL
valores.
El name
la columna también se declara con un NOT NULL
restricción, por lo que solo aceptará valores que no sean NULL.
La siguiente declaración intenta insertar un NULL
en el name
columna de los suppliers
tabla:
INSERT INTO suppliers(name)
VALUES(NULL);
Code language: SQL (Structured Query Language) (sql)
La declaración falla debido a NOT NULL
violación de restricción. Aquí está el mensaje de error:
SQL Error [19]: [SQLITE_CONSTRAINT] Abort due to constraint violation (NOT NULL constraint failed: suppliers.name)
Code language: CSS (css)
En este tutorial, ha aprendido a usar SQLite NOT NULL
restricción para asegurar que los valores en una columna no sean NULL.