[oracle_br] Re: Delete Cascade

2013-06-10 Por tôpico J. Laurindo Chiappa
  Elcio, veja lá que *** Não Existe *** um "comando" de DELETE CASCADE, yep ??? 
O que existe é uma PROPRIEDADE que vc ativa na constraint de chave - assim que 
essa propriedade estiver Ativa, a partir daí os DELETEs na tabela-pai 
Automaticamente deletarão os registros-filhos desse pai sendo deletado, okdoc 
?? Não é VOCÊ que os deleta, sim sim ??
   Então é simples : passo 1, CONFIRA se a constraint está com a propriedade de 
CASCADE ativa, fazendo uma consulta tipo :
   
SELECT constraint_name, delete_rule
  FROM dba_constraints
 WHERE r_constraint_name = 'NOMEDACONSTRAINT'
   AND r_owner = 'SCHEMADONODACONSTRAINT';
   
  SE já estiver como CASCADE, maravilha, vc não precisa fazer NADA que 
Automagicamente os DELETEs que apagarem um registro-pai já vão apagar os filhos 
desse pai...   
  SE não estiver como CASCADE, afaik vc não pode alterar a constraint que já 
existe, vc terá que dropar e recriar a constraint incluindo a opção de ON 
DELETE CASCADE ...
  
   []s
   
 Chiappa

--- Em oracle_br@yahoogrupos.com.br, Elcio Francisco  
escreveu
>
> Saudações, gostaria de saber como usar o comando DELETE CASCADE para deletar 
> FOREIGN KEY
> 
> Obrigado
> 
> 
>  
> Elcio Francisco  
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




[oracle_br] Re: Delete cascade

2012-09-25 Por tôpico J. Laurindo Chiappa

   Sim :como eu disse, cheque na Doc da sua versão pra ver se isso mudou, se 
não mudou vc vai sim ter que remover & recriar as constraint todas envolvidas, 
adicionando na recriação o  ON DELETE CASCADE  Compare o esforço/benefício 
disso (benefício provavelmente sendo o fato de no futuro vc Já ter as 
constraints do jeito desejado) contra a opção de fazer os DELETEs num LOOP 
/programa que consulte o dicionário para cada tabela-pai procurando as 
dependências e use o que for mais adequado...
   
[]s

  Chiappa

--- Em oracle_br@yahoogrupos.com.br, Jales Jose Moraes  escreveu
>
> Estão ativas, a opção está como NO ACTION e estou deletando a partir da pai. 
> Acredito que vou ter então que recriar todas com a opção ON DELETE CASCADE e 
> depois voltar para NO ACTION...
> 
> 
> 
> 
> De: J. Laurindo Chiappa 
> Para: oracle_br@yahoogrupos.com.br 
> Enviadas: Terça-feira, 25 de Setembro de 2012 13:51
> Assunto: [oracle_br] Re: Delete cascade
> 
>   
> Isso depende ** totalmente ** dos itens que vc não nos diz, tal como :
> 
> a) Existem realmente, e estão Ativas, as constraints de PK e FK nas tabelas ?
> 
> b) as constraints Foram criadas com a opção de ON DELETE CASCADE ??
> 
> c) vc está Deletando a partir da tabela-pai ??
> 
> ==> SE tudo acima for verdadeiro, o simples DELETE no pai já vai 
> automaticamente causar um DELETE correspondente nos filhos, caso em que vc 
> NÃO terá que fazer nada  SE a) for falso vc tem que fazer na mão , sim 
> ... SE b) for falso, Dependendo da sua versão (o que vc Também não nos diz) 
> vc teria que remover e recriar as Constraints para adicionar a cláusula de ON 
> DELETE CASCADE... SE c) for falso, vc OU passa a deletar a partir do pai (se 
> esse é mesmo o objetivo, se livrar do pai e dos filhos todos), OU terá que 
> ser manual o trabalho, penso
> 
> []s
> 
> Chiappa
> 
> --- Em mailto:oracle_br%40yahoogrupos.com.br, Jales Jose Moraes  
> escreveu
> >
> > Pessoal preciso excluir alguns registros de uma tabela na qual possui 
> > várias dependências. É preciso listas as dependências pelo dicionário e 
> > fazer uma PL ou há algo mais rápido para a deleção em cascata?
> >  
> > Abs...
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> 
> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>