Tecnicamente, ambos são constraints, fazem EXATAMENTE o mesmo :

[EMAIL PROTECTED]:SQL>create table X(c1 number not null, c2 number);

Tabela criada.

[EMAIL PROTECTED]:SQL>alter table X add constraint CK_C2_NN check(c2 
not null);
alter table X add constraint CK_C2_NN check(c2 not null)
                                                   *
ERRO na linha 1:
ORA-00920: operador relacional inválido


[EMAIL PROTECTED]:SQL>alter table X add constraint CK_C2_NN check(c2 is 
not null);

Tabela alterada.

[EMAIL PROTECTED]:SQL>insert into X values(1,1);

1 linha criada.

[EMAIL PROTECTED]:SQL>commit;

Validação completa.

[EMAIL PROTECTED]:SQL>select * from user_constraints where 
table_name='X';

OWNER            CONSTRAINT_NAME                C 
TABLE_NAME                     
SEARCH_CONDITION                                                      
           R_OWNER                        
R_CONSTRAINT_NAME              DELETE_RU STATUS   DEFERRABLE     
DEFERRED  VALIDATED     GENERATED      BAD RELY LAST_CHANGE         
INDEX_OWNER                    INDEX_NAME                     INVALID 
VIEW_RELATED
---------------- ------------------------------ - --------------------
---------- -----------------------------------------------------------
--------------------- ------------------------------ -----------------
------------- --------- -------- -------------- --------- ------------
- -------------- --- ---- ------------------- ------------------------
------ ------------------------------ ------- --------------
CHIAPPA          SYS_C0010820                   C 
X                              "C1" IS NOT 
NULL                                                                  
                                                                      
 ENABLED  NOT DEFERRABLE IMMEDIATE VALIDATED     GENERATED 
NAME          29/07/2005 10:44:04
CHIAPPA          CK_C2_NN                       C 
X                              c2 is not 
null                                                                  
                                                                      
   ENABLED  NOT DEFERRABLE IMMEDIATE VALIDATED     USER 
NAME               29/07/2005 10:44:44

[EMAIL PROTECTED]:SQL>

==>> NOTE PORÉM que se vc deixa o bd criar sem especificar nome, ele 
cria com SYS_xhdgd , um nome maluco dele, isso é um pé pra 
administração : eu acho isso não-recomendável, mas é o que mais se vê 
por aí. Afora a dificuldade de admin, o resto é tudo igual.

[]s

 Chiappa
 
--- Em oracle_br@yahoogrupos.com.br, "Akira" <[EMAIL PROTECTED]> 
escreveu
> Alguém sabe qual a diferença de se ter um campo not null ou uma 
constraint check not null?
> Diferença de performance, por causa das coletas de estatísticas, 
diferença de execução, o que é mais recomendado, etc.
> 
> ALTER TABLE TABELA MODIFY CAMPO CONSTRAINT XXX NOT NULL;
> ALTER TABLE TABELA ADD CONSTRAINT XXX CHECK (CAMPO IS NOT NULL);
> 
> Akira
> 
> [As partes desta mensagem que não continham texto foram removidas]




______________________________________________________________________

Histórico: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
Falar com os Moderadores:([EMAIL PROTECTED])
Dorian Anderson Soutto - Fernanda Damous - Alisson Aguiar 
______________________________________________________________________ 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a