Select arvore de relacionamentos das tabelas

Scripts Diversos para o Oracle SQL*Plus. (Relacionado a ferramenta Oracle SQL*Plus, para questões de SQL, usar o forum SQL)
Responder
Guilly
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Qua, 17 Ago 2011 2:31 pm
Localização: passo fundo - rs

Ola a todos,
Estou precisando fazer um select que traga toda a arvore de relacionamentos das tabelas,ou seja Tabela1-->Tabela2-->Tabela3...etc, poderia ser somente o nome das tabelas, ou se não for possivel apenas traga as FK e PK das mesmas,alguém pode me ajudar??
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Tem esse topico, que não mostra em ARVORE, mas mostra os PAIS e FILHOS de uma tabela:
http://glufke.net/oracle/viewtopic.php?t=883
Guilly
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Qua, 17 Ago 2011 2:31 pm
Localização: passo fundo - rs

Muito obrigado!!!!
Mas e se eu quisesse zerar essas tabelas, sem interfirir na ligação entre elas. Poderia usar um "delete cascade" ou tem alguma outra maneira que não seja demorada?
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Se seu objetivo for apenas apagar uma tabela, sem tabelas filhas, um

Selecionar tudo

Delete from tabela 
deveria atender...

E considerando o mesmo cenário, se tiver as devidas permissões um

Selecionar tudo

truncate table tabela
tambem funcionaria.
Guilly
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Qua, 17 Ago 2011 2:31 pm
Localização: passo fundo - rs

Tenho que deletar os dados delas, mas não posso deletar sua estrutura e suas ligações...
Também tenho que levar em consideração que vou ter que fazer isso em mais de 2000 tabelas e após tenho que exportar as mesmas. Pensei em truncate e delete, mas como são muitas e tenho essas duas restrições, creio que vai ser mais dificil. A unica maneira que achei até agora é fazer delete cascade. Claro que ainda sou muito inesperiente com BD.
Se puderem me ajudar...
ishii
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 82
Registrado em: Ter, 28 Dez 2010 7:41 pm
Localização: São Paulo - SP

Olá,

Para registro: Dado é dado, estrutura é estrutura... apagar os dados não vai afetar a estrutura da tabela e nem seus relacionamentos, o máximo que pode ocorrer é justamente ficar "lento" por conta dos relacionamentos e/ou triggers (as malditas triggers...)

O delete cascade vai apagar os dados em cascata, ou seja, os netos primeiro, depois as filhas e somente então as tabelas-mães...

Se for ter que fazer isso manualmente, fica meio chato, demorado (por causa dos relacionamentos) e o comando delete vai demorar mesmo. Se for apenas para exportar as tabelas, sugiro utilizar o exp (rows = N) ou expdp (content = METADATA_ONLY) pois somente serão criadas justamente as estruturas sem os dados...

Se for para ter um ambiente de teste (ou base zero como gosto de chamar) poderia também:

1.Desabilitar todas as FKs e PKs (nessa ordem)
2.Truncar todas as tabelas
3.Habilitar as PKs e FKs (nessa ordem também)

[]s Ishii
:-o
"Dado não traz felicidade!"
Guilly
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 8
Registrado em: Qua, 17 Ago 2011 2:31 pm
Localização: passo fundo - rs

Valeu pelas explicações!!!

Como falei anteriormente, não sei muita coisa de banco e me deram essa tarefa pra fazer... To apanhando muito, mas com a ajuda de vocês pude fazer muitas coisas.

Muito obrigado e espero mais pra frente contribuir com minhas experiencias.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes