Restrição NOT NULL |
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 |
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); |
Realizado por Turtle Learning ®. Última alteração em 2011-08-14