[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 elciofrancisco@... 
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 malphigjjm@... 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 jlchiappa@...
 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 malphigjjm@ 
 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]