Resumo :neste tutorial, você aprenderá como usar o SQLite
NOT NULL
restrição para garantir que os valores em uma coluna não sejam NULL
. Introdução ao SQLite NOT NULL
restrição
Ao criar uma tabela, você pode especificar se uma coluna aceita
NULL
valores ou não. Por padrão, todas as colunas em uma tabela aceitam NULL
valores exceto que você usa explicitamente NOT NULL
restrições. Para definir um
NOT NULL
restrição para uma coluna, você usa a seguinte sintaxe:CREATE TABLE table_name (
...,
column_name type_name NOT NULL,
...
);
Code language: SQL (Structured Query Language) (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, não no nível da tabela. Baseado no padrão SQL,
PRIMARY KEY
deve sempre implicar NOT NULL
. No entanto, o SQLite permite NULL
valores na PRIMARY KEY
coluna exceto que uma coluna é INTEGER PRIMARY KEY
coluna ou a tabela é um WITHOUT ROWID
tabela ou a coluna é definida como um 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á quebrar os sistemas legados. Portanto, foi decidido permitir
NULL
valores na PRIMARY KEY
coluna. Uma vez que um
NOT NULL
restrição é anexada a uma coluna, qualquer tentativa de definir o valor da coluna para NULL
como inserir ou atualizar causará uma violação de restrição. SQLite NOT NULL
exemplo de restrição
O exemplo a seguir cria uma nova tabela chamada
suppliers
:CREATE TABLE suppliers(
supplier_id INTEGER PRIMARY KEY,
name TEXT NOT NULL
);
Code language: SQL (Structured Query Language) (sql)
Neste exemplo, o
supplier_id
é a PRIMARY KEY
coluna dos suppliers
tabela. Porque esta coluna é declarada como INTEGER PRIMARY KEY
, ele não aceitará NULL
valores. O
name
coluna também é declarada com um NOT NULL
restrição, portanto, aceitará apenas valores não NULL. A instrução a seguir tenta inserir um
NULL
no name
coluna dos suppliers
tabela:INSERT INTO suppliers(name)
VALUES(NULL);
Code language: SQL (Structured Query Language) (sql)
A instrução falha devido ao
NOT NULL
violação de restrição. Aqui está a mensagem de erro:SQL Error [19]: [SQLITE_CONSTRAINT] Abort due to constraint violation (NOT NULL constraint failed: suppliers.name)
Code language: CSS (css)
Neste tutorial, você aprendeu como usar SQLite
NOT NULL
restrição para garantir que os valores em uma coluna não sejam NULL.