Resumo : neste tutorial, você aprenderá como usar a NOT NULL
restrição SQLite para garantir que os valores em uma coluna não sejam NULL
.
NOT NULL
Introdução à restrição SQLite
Ao criar uma tabela , você pode especificar se uma coluna aceita NULL
valores ou não. Por padrão, todas as colunas de uma tabela aceitam NULL
valores, exceto se você usar restrições explicitamente NOT NULL
.
Para definir uma NOT NULL
restrição para uma coluna, use a seguinte sintaxe:
CREATE TABLE table_name (
...,
column_name type_name NOT NULL,
...
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Ao contrário de outras restrições, como PRIMARY KEY
e CHECK
, você só pode definir NOT NULL
restrições no nível da coluna e não no nível da tabela.
Baseado no padrão SQL, PRIMARY KEY
deve sempre implicar NOT NULL
. No entanto, SQLite permite NULL
valores na PRIMARY KEY
coluna, exceto que uma coluna é INTEGER PRIMARY KEY
uma coluna ou a tabela é uma WITHOUT ROWID
tabela ou a coluna é definida como uma NOT NULL
coluna.
Isso se deve a um bug em algumas versões anteriores. Se esse bug for corrigido para estar em conformidade com o padrão SQL, ele poderá danificar os sistemas legados. Portanto, foi decidido permitir NULL
valores na PRIMARY KEY
coluna.
Depois que uma NOT NULL
restrição é anexada a uma coluna, qualquer tentativa de definir o valor da coluna NULL
como inserção ou atualização causará uma violação da restrição.
NOT NULL
Exemplo de restrição SQLite
O exemplo a seguir cria uma nova tabela chamada suppliers
:
CREATE TABLE suppliers(
supplier_id INTEGER PRIMARY KEY,
name TEXT NOT NULL
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste exemplo, the supplier_id
é a PRIMARY KEY
coluna da suppliers
tabela. Como esta coluna é declarada como INTEGER PRIMARY KEY
, ela não aceitará NULL
valores.
A name
coluna também é declarada com uma NOT NULL
restrição, portanto aceitará apenas valores não NULL.
A instrução a seguir tenta inserir a NULL
na name
coluna da suppliers
tabela:
INSERT INTO suppliers(name)
VALUES(NULL);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A instrução falha devido à NOT NULL
violação da restrição. Aqui está a mensagem de erro:
SQL Error [19]: [SQLITE_CONSTRAINT] Abort due to constraint violation (NOT NULL constraint failed: suppliers.name)
Linguagem de código: CSS ( css )
Neste tutorial, você aprendeu como usar NOT NULL
a restrição SQLite para garantir que os valores em uma coluna não sejam NULL.