A linguagem SQL > DDL > Tabelas > Restrição NOT NULL
Restrição NOT NULL tl_logo2.jpg

A restrição NOT NULL garante que uma coluna não admite valores NULL. Isto significa que será abortada uma operação de INSERT ou UPDATE que coloque um valor NULL nessa coluna. A sua utilização é útil sempre que as regras de negócio obriguem ao preenchimento de um campo.

No exemplo de criação da tabela EQUIPA apresentado abaixo temos duas restrições NOT NULL: a primeira é definida sem nome, o que significa que a base de dados lhe dará um nome do tipo SYS_C012345. A segunda é definida com indicação explicita do nome:

create table EQUIPA  (
   ID_EQUIPA   NUMBER(10,0)                             not null,
   NOME        VARCHAR2(100) constraint nn_equipa_nome  not null,
   constraint PK_EQUIPA primary key (ID_EQUIPA)
);

O comando abaixo permite consultar as restrições que foram criadas sobre a tabela EQUIPA:

select * 
from user_constraints
where table_name = 'EQUIPA'
OWNER                          CONSTRAINT_NAME                CONSTRAINT_TYPE TABLE_NAME                     SEARCH_CONDITION   R_OWNER                        R_CONSTRAINT_NAME              DELETE_RULE STATUS   DEFERRABLE     DEFERRED  VALIDATED     GENERATED      BAD RELY LAST_CHANGE               INDEX_OWNER                    INDEX_NAME                     INVALID VIEW_RELATED   
------------------------------ ------------------------------ --------------- ------------------------------ ------------------ ------------------------------ ------------------------------ ----------- -------- -------------- --------- ------------- -------------- --- ---- ------------------------- ------------------------------ ------------------------------ ------- -------------- 
HR                             SYS_C005937                    C               EQUIPA                         "ID_EQUIPA" IS NOT NULL                                                                      ENABLED  NOT DEFERRABLE IMMEDIATE VALIDATED     GENERATED NAME          06.06.26                                                                                                       
HR                             NN_EQUIPA_NOME                 C               EQUIPA                         "NOME" IS NOT NULL                                                                           ENABLED  NOT DEFERRABLE IMMEDIATE VALIDATED     USER NAME               06.06.26                                                                                                       
HR                             PK_EQUIPA                      P               EQUIPA                                                                                                                      ENABLED  NOT DEFERRABLE IMMEDIATE VALIDATED     USER NAME               06.06.26                  HR                             PK_EQUIPA                                             

3 rows selected

note04.gif

O comando abaixo permite remover uma restrição NOT NULL:

alter table EQUIPA drop constraint NN_EQUIPA_NOME;

O comando abaixo permite alterar uma tabela adicionando-lhe a restrição NOT NULL sobre uma coluna que não era NOT NULL:

alter table EQUIPA modify (NOME constraint NN_EQUIPA_NOME  not null);

note04.gif

bthome.gifTopo


Realizado por Turtle Learning ®. Última alteração em 2011-08-14