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